Как заменить слово под курсором в Vim.
Итак, вместо использования dw
then i
тогда слово, а затем Esc
, есть ли более простая комбинация для замены слова под курсором?
Как заменить слово под курсором в Vim.
Итак, вместо использования dw
then i
тогда слово, а затем Esc
, есть ли более простая комбинация для замены слова под курсором?
ciw
(изменение внутреннего слова) изменит все слово под курсором. Сравните с
cw
который только изменит слово из текущей позиции курсора. Для получения дополнительной информации см. этот SO вопрос/ответ.
Я часто обнаруживаю, что хочу заменить одно слово другим, которое я дернул из другого места. Проблема с другими решениями заключается в том, что если вы попытаетесь изменить слово, то следующей пастой будет то слово, которое вы удалили с помощью cw
.
Попробуйте следующее:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Надеюсь, что вы искали.
c i w
c change
iw inner word
Это приведет к удалению слова под курсором (даже если курсор находится где-то посередине слова) и введите режим вставки.
Также см. документацию Vim для справки:
:help c
:help text-objects
Если вы хотите изменить слово с ранее выдернутым словом, есть другое решение для viwp
(как только вы выдернули первое слово).
ciw
удаляет предыдущее слово и переводит вас в режим вставки, где он был. Но тогда вы можете использовать ctrl+r, 0
чтобы вставить содержимое регистра 0 (который содержит ранее выдернутое слово).
Так:
yiw
[move to next word]
ciw
ctrl+r
0
Это работает лучше, чем viwp
потому что после первого использования вы можете несколько раз выполнить замену с помощью .
, Он также не переключается в визуальный режим и не выделяется кратко.
Попробуйте cw
- как в слове "изменить слово".
Используйте http://linuxmoz.com/vi-commands-cheat-sheet/ или любой другой лист обмана как ссылку.