В обычном режиме я могу нажать Ctrl
+ E
, который удаляет оставшуюся часть текущего слова и переходит в режим вставки.
Я хочу удалить все слово, независимо от позиции курсора (в пределах слова, конечно).
В обычном режиме я могу нажать Ctrl
+ E
, который удаляет оставшуюся часть текущего слова и переходит в режим вставки.
Я хочу удалить все слово, независимо от позиции курсора (в пределах слова, конечно).
Вы можете использовать "изменить внутреннее слово", набрав "ciw", чтобы удалить слово, в котором находится ваш курсор.
Команды "inner" и "a" велики в Vim, также попробуйте "ci {" внутри блока {} или "ca {", если вы также хотите удалить символы {}. Чтобы перевести эти команды на английский, чтобы лучше запомнить их, попробуйте: "изменить внутренний {блок] и" изменить {блок].
Документация на http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
Ответьте на свой следующий вопрос: viwp
v -> start visual mode
iw -> select the 'inner word'
p -> paste - in visual mode it replaces the visually selected text.
Для второго вопроса: bPldw
Это приведет вас к началу текущего слова, вставьте регистр по умолчанию перед курсором, перейдите к следующему символу (пропустив конец текста, который вы только что вставили), и удалите остальное слово.
Или вы могли бы использовать последовательность клавиш bdwi
, чтобы удалить текущее слово и перейти в режим INSERT.
По первому вопросу, bcw
также работает. Это означает "b
ack для начала слова, c
hange w
ord". Но я думаю, что ciw
более запоминающимся, что означает "c
hange i
nner w
ord", всего лишь один шаг.
Во втором вопросе о "replace using paste" мое решение "_diwP
. Это d
elete i
nner w
ord в регистр, который вам неинтересен, и p
задерживать содержимое регистра по умолчанию. Преимущество состоит в том, что вы можете вставлять регистр по умолчанию много раз, потому что он не будет загрязнен. Это комплекс litte, поэтому я отображаю его как nnoremap ,r "_diwP
.