удалить слово после или вокруг курсора в VIM - PullRequest
194 голосов
/ 07 мая 2009

Я сейчас переключаюсь на VIM из TextMate. Я нашел ^+W в режиме INSERT очень полезным. Однако я хотел бы удалить не только слово перед курсором, но и слово после или вокруг курсора.

Я немного погуглил, но единственное, что я смог найти, это ^+W удалить слово ДО курсора.

Ответы [ 16 ]

2 голосов
/ 19 января 2014

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

:map <'Key of your choice'> caw

:imap <'Key of your choice'> <'Esc'> caw

2 голосов
/ 31 мая 2009

Принятый ответ не удаётся при попытке повторить удаление слов, попробуйте следующее решение:

" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw

Отображает CTRL-BackSpace, также работает в обычном режиме.

2 голосов
/ 07 мая 2009

В старом vi b перемещает курсор в начало слова перед курсором, w перемещает курсор в начало слова после курсора, e перемещает курсор в конец слова после курсора и dw удаляет от курсора до конца слова.

Если вы наберете wbdw, вы удалите слово вокруг курсора, даже если курсор находится в начале или в конце слова. Обратите внимание, что пробелы после слова считаются частью слова, которое нужно удалить.

2 голосов
/ 07 мая 2009

Не совсем уверен, что вы использовали "до" и "после", но вы пробовали

dw

Редактировать: Я думаю, вы ищете что-то для использования в режиме вставки. Как ни странно, в документах ничего не найдено, кажется, все, что есть, - ctrl-w.

2 голосов
/ 07 мая 2009

Для удаления определенного количества символов перед курсором вы можете использовать X. Для удаления определенного количества слов после курсора вы можете использовать dw (несколько слов можно удалить с помощью 3dw для слова к примеру). Для удаления вокруг курсора в целом вы можете использовать daw.

0 голосов
/ 03 апреля 2018

Я хотел бы удалить не только слово перед курсором, но и слово после или вокруг курсора.

В этом случае решение, предложенное ОП (то есть с использованием <c-w>), может быть объединено с принятым ответом, чтобы дать:

inoremap <c-d> <c-o>daw<c-w>

альтернативно (более короткое решение):

inoremap <c-d> <c-o>vawobd

Пример ввода:

word1 word2 word3 word4
               ^------------- Cursor location

Выход:

word1 word4
...