Как мы можем получить последнее удаленное слово - PullRequest
1 голос
/ 14 января 2010

Существует ли регистр, опция ... для удаления последнего слова (dw)?

Предположим, у меня есть эта строка:

word_1, word_2, word_3

Я помещаю курсор на w word_2 и dw и получаю:

word_1, , word_3

Поэтому я нажимаю xx, чтобы удалить ,, за которым следует пробел.

Я не могу использовать p или P для вставки word_2, потому что он содержит пробел.

Я знаю, что мог бы использовать регистр для копирования word_2 в него и использовать " для вставки word_2.

Спасибо

=============================================

EDIT

Пока гуглят

delete register vim

Я нашел этот интересный связанный вопрос: В vim есть способ удалить без внесения текста в реестр?

Ответы [ 2 ]

4 голосов
/ 14 января 2010

Для небольших удалений внутри одной строки, таких как удаление слова или удаление отдельных символов с x, многоуровневая история не сохраняется в регистрах.

Для больших удалений (одна строка или более, или некоторые особые движения рекомендуется), последние девять удаленных элементов автоматически сохраняются в регистрах с 1 по 9. Поэтому, если вы делаете три удаления, вы можете вставить текст из первого (третьего). в истории) с "3p.

Официальную документацию для этих регистров см. Также :help quote_number.

2 голосов
/ 14 января 2010

Существует только один регистр, хранящий данные, удаленные в строке : "" (ну, есть также "-, но здесь он не очень полезен , поскольку он является копией " «в этом случае ). [текст курсивом добавлен впоследствии]

Это определенно не универсальное решение, но я переназначил x для «удаления в никуда»:

:map x "_d
:map xx "_dd

Таким образом, d удаляет, чтобы удалить регистр, и x делает то же самое, но не удаляет регистр удаления, так что я могу сохранить ценную удаленную информацию в целости.

Так что в вашем случае я бы набрал: dw 2x<Right> (или xf<Space>), а затем p

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...