Как удалить слово и перейти в режим вставки в Vim?



в обычном режиме я могу ударить Ctrl + E который удаляет остаток текущего слова и переходит в режим вставки.



Я хочу удалить все слово, независимо от позиции курсора (в пределах слова, конечно). Кроме того-как я могу заменить текущее слово на то, что находится в регистре по умолчанию?

499   5  
vim

5 ответов:

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

команды "inner" и "a" отлично подходят для Vim, также попробуйте "ci{" внутри блока {} или "ca {", если вы также хотите удалить символы {}. Чтобы перевести эти команды на английский язык, чтобы запомнить их лучше, попробуйте: "change inner { block "И"change a { block".

документация по адресу 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 удалить текущее слово и перейти в режим вставки.

по первому вопросу:bcw также работать. Это значит "back до начала слова,change wОГА". Но я думаю ciw более запоминающимся, что значит "change inner wОГА", всего лишь один шаг.

для второго вопроса о "замене с помощью пасты", мое решение "_diwP. Это delete inner word к регистру вы не заботитесь и pАсте содержание регистра по умолчанию. Преимуществом является то, что вы можете вставить регистр по умолчанию много раз, потому что он не будет загрязнен. Это небольшой комплекс, поэтому я отображаю его как nnoremap ,r "_diwP.

Comments

    Ничего не найдено.