Условный ESC, идеи? - PullRequest
       19

Условный ESC, идеи?

1 голос
/ 09 апреля 2010

Мне часто нужно войти в режим вставки, чтобы внести изменения в определенную строку, и хотел бы знать, есть ли способ войти в режим вставки таким образом, чтобы, когда я закончил редактирование в этой строке, нажимал Enter возвращает меня в нормальный режим.

Мне известна команда r для замены одного символа, я думаю, что мне нужно что-то подобное, но для строки.

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

Следующее сопоставление приводит к тому, что комбинация клавиш gi входит в режим вставки точно так же, как i, но при нажатии Enter в этом режиме вставки вы возвращаетесь в обычный режим. Просто добавьте следующие строки в ваш .vimrc:

autocmd! InsertLeave * silent! iunmap <CR>
nnoremap gi :inoremap <C-V><CR> <C-V><ESC><CR>i
0 голосов
/ 10 апреля 2010

На первый взгляд это звучит так, как вы хотите R , но остальная часть вопроса заставляет задуматься, что вам также будет проще заменить символы под курсором, Избегайте Esc или, возможно, вообще вставьте режим. Итак, вот несколько случайных предложений, которые могут помочь:

Удалить слово под курсором и сказать в командном режиме: diw

Удалить всю строку и остаться в командном режиме: dd

Если вы не любите дотягиваться до клавиши Esc, вы можете сделать это еще чем-нибудь - например, дважды нажав j в режиме вставки - выполните Esc: imap jj

Или через несколько секунд бездействия vim может автоматически переключаться в обычный режим: * au CursorHoldI * stopinsert *

0 голосов
/ 11 апреля 2010

Если вы, как и я, обнаруживаете, что дотягиваете до клавиши ESC, то используйте Ctrl- [- Vim определил ее как псевдоним по умолчанию.

0 голосов
/ 10 апреля 2010

Работает ли следующее?

:imap <Enter>   <Esc><Enter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...