Как заставить IMAP работать в режиме вставки в Vim?

Недавно я начал использовать imap jj и пытаюсь отменить Ctrl + [.

Однако imap не работает, когда включен режим вставки. Как заставить его работать в режиме вставки?

Ответы

Ответ 1

Вы просто не можете иметь сопоставления, если включена опция "вставить", поскольку это все указывает на режим пасты Vim.

Режим паттерна Vim предназначен для того, чтобы вы могли вставлять материал даже в экземпляр консоли Vim в терминале &, где Vim может не знать, что вы используете мышь для вставки — и вы хотите вставить буквенную текстовую форму для вставки буфер без запуска сопоставлений, или отпечаток auto/smart/expression и т.д.

Я предлагаю вам взглянуть на:

: help 'paste'
: help 'pastetoggle'

Ответ 2

Добавьте следующий сниппет в ваш .vimrc, чтобы автоматически запускать режим вставки при вставке через терминал:

let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"

inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()

function! XTermPasteBegin()
   set pastetoggle=<Esc>[201~
   set paste
return ""
endfunction

С: https://coderwall.com/p/if9mda