2016-01-15 1 views
2

Я стараюсь отображать < Esc> для сохранения файла с помощью только одним нажатием клавиши.Используйте <Esc> ключ для сохранения файла одним нажатием клавиши в режиме вставки или в нормальном режиме

В нормальном режиме он работает до сих пор.

map <Esc> :w <CR> 

Но у меня есть проблемы, чтобы отобразить его в режиме вставки, я попробовал следующую команду, но does't работать

map <Esc> <Esc>[ :w <CR> 

Кстати, я хочу только One Key Press только.

Пожалуйста, дайте мне несколько предложений, или если вы знаете какой-нибудь хороший ключ, чтобы сохранить файл с Один пресс в Vim

+0

Эти пространства внутри ваших сопоставлений не нужны и на самом деле, вероятно, мешают тому, что вы пытаетесь сделать, поскольку они будут выполняться как команда (в обычном режиме , пробел перемещает курсор вперед на одну позицию). И что это такое? [Пытается сделать во втором отображении? – Ben

ответ

7

Вы продолжаете подчеркивающий Один пресс, как будто это была самая важная часть вашей проблемы, но Важная часть: Режим вставки.

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

Вы должны использовать :imap - или его нерекурсивна друг :inoremap - для режима вставки:

:inoremap <Esc> <Esc>:w<CR> 

Для чего это стоит, я рекомендую решение Инго.

6

Обратите внимание, что сопоставление <Esc>, особенно в режиме вставки, не рекомендуется. Большинство специальных клавиш (например, курсор и функциональные клавиши) отправляются как Последовательности эвакуации на терминале. В качестве альтернативы можно закреплять в InsertLeave события:

:autocmd InsertLeave * silent! update 

:update лучше подходит, чем :write, потому что на самом деле только экономит, когда есть unpersisted обновления. :silent! подавляет ошибки, когда буфер не был назван и т. Д.

+0

Хорошее предложение, спасибо – 1234