Есть ли способ вставить один символ и затем выйти из режима вставки?

10

Когда я просматриваю текст и, например, добавляю кавычки вокруг определенных слов или кавычек или чего-то еще, меня раздражает необходимость нажимать клавишу Esc или Ctrl- [после каждой вставки. Вставки (и дополнения) разные, поэтому .не сильно помогает.

Есть ли что-то похожее на rто, что после одного символа возвращается в нормальный режим, но использует режим вставки вместо режима замены?

Wildcard
источник
3
Возможно, вам следует подумать об использовании (или расширении) плагина vim -round, чтобы работать с текстом более осмысленно .
VanLaser

Ответы:

11

Если нет (я не смотрел), вы можете использовать это отображение в вашем .vimrc:

nnoremap <C-I> i <ESC>r

Он iвставляет, помещает пробел, ESCобезьяны и запускает одну букву r. Это отображается на CtrlI.

Это взлом, и он оставит свободное место, если вы нажмете клавишу «Escape», прежде чем наберете письмо - но это лучше, чем ничего!

Qix - МОНИКА БЫЛА НЕПРАВИЛЬНОЙ
источник
1
Неплохо ... Я, наверное, воспользуюсь этим, если никто не придумает ничего лучшего. :)
Wildcard
2
@Wildcard Я не понимал, сколько я действительно столкнулся с этим вариантом использования, не осознавая этого. Хороший вопрос :) Я также добавил его в свой собственный vimrc.
Qix - МОНИКА БЫЛА ПОВТОРЕНА
2
Я провел большую часть дня, исправляя кучу скидок. Курсив, встроенный код, отступы заголовка, гиперссылки ... все они вставляются одним символом. :) На самом деле ваше решение идеально подходит; Я собираюсь начать использовать его сейчас.
Wildcard
2
Недостаток: это не повторяется с .командой. :(
Подстановочный
1
@ Wildcard, к сожалению, после небольшого исследования, нет способа создать ручную ветвь повторения, .если вы не используете repeat.vim.
Qix - МОНИКА ПРОИЗОШЛА
0

Чтобы вставить символ в конце слова (вместо позиции курсора), используйте

nnoremap <C-a> a <ESC>r

Это соответствует Ctrl + a, вы можете сопоставить это с чем-либо еще, конечно.

У меня есть два в моем .vimrcпросто так, я не суетлюсь много :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
Руто Коллинз
источник