Как я могу удалить строку, не помещая ее в буфер по умолчанию?
Пример:
line that will be copied.
line that I want to be substitued with the previous one.
Что я пытаюсь сделать:
yy
dd
p
Но Vim заменяет недавно скопированную строку удаленной (вырезанной). Я знаю , что я могу использовать буфера , как, "1yy
, dd
то "1p
, но я всегда забываю поставить скопированную строку в буфере , то я сначала нужен вставить мое содержание (линию , которая будет скопирована) , а затем удалить то , что я хочу (строка , что я хочу быть замененным предыдущим.)
Как я могу действительно удалить текст в Vi (m), не копируя его?
Другой связанный вопрос: как я могу удалить слово вперед в режиме вставки? Хочу что-то похожее на Ctrl+ w.
vim
copy-paste
Майкоид
источник
источник
Ответы:
Используйте «черную дыру» регистр,
"_
чтобы действительно удалить что - нибудь:"_d
.Используйте,
"_dP
чтобы вставить что-нибудь и сохранить его для дальнейшей вставки.Для второго вопроса вы можете использовать
<C-o>dw
.<C-o>
используется для выполнения обычной команды без выхода из режима вставки .Конечно, вы можете настроить свои собственные сопоставления, чтобы не печатать. У меня есть такие:
источник
d
прежнему «вырезает» иp
все еще «вставляет», при этом<leader>d
удаляет по-настоящему,<leader>p
отбрасывает выделенный текст и вставляет содержимое регистра по умолчанию.<leader>p
позволяет мне вставлять один и тот же текст несколько раз без использования именованных регистров.Черная дыра регистр
"_
будет делать трюк, но есть лучшее решение:Когда вы снова входите в строку с
p
командой, вы вставляете содержимое (изменчивого) регистра по умолчанию""
, которое было перезаписаноdd
. Но вы все равно можете вставить данные из (энергонезависимого) регистра восстановления"0
, который не будет перезаписан командой удаленияdd
.Итак, это команды, которые вы хотите использовать в соответствии с вашим примером:
источник
Это одна из вещей, которые мне не нравились в vim ... Я закончил тем, что сопоставил
dd
регистр черной дыры в моем .vimrc, и с тех пор жизнь стала хорошей:источник
v/V
сx
тоже разрезается. И резка сx
тоже совместима сCtrl + x
любой ОС.следующие сопоставления произведут:
Кроме того, рекомендуется устанавливать ключ "лидера" на запятую, например:
эти 2 фрагмента сделают ", d" вашей новой командой вырезания.
Если вы хотите использовать эти сопоставления вместе с конфигурацией общего системного буфера обмена, см. Дополнительные сведения на https://github.com/pazams/d-is-for-delete
источник
yydd
что было немного неустойчиво для моих пальцев;-)
.,dd
. После добавленияnnoremap <leader>dd ""dd
заработалоВы можете использовать,
"_d
чтобы предотвратить перезапись вашего извлеченного текста. Вы можете хранить извлеченный или удаленный текст в любом регистре, который вам нужен"
, и_
это регистр «черной дыры», куда вы отправляете вещи, которые вам не нужны.Для получения дополнительной информации вы можете ввести
:help "_
или:help deleting
источник
В визуальном режиме
x
удаляет выделение, поэтому, если вы хотите удалить всю строку, сначала нажмите,V
чтобы выбрать строку в визуальном режиме, а затем нажмите,x
чтобы удалить выделение.источник