Vim больше не звонит <plug> в режиме вставки? </plug>

260
huangzonghao

У меня есть следующая конфигурация в моем файле vimrc.

inoremap <C-A> <Plug>InsertComment 

И где-то в моей папке VIM я определил

inoremap <silent> <Plug>InsertComment <ESC>:call INSERT_MY_COMMENT 

Отображение работало очень хорошо после того, как я настроил это. Но как-то недавно он перестал функционировать. И всякий раз, когда я могу использовать привязку клавиш в режиме вставки, вместо вызова вызываемой мной функции, vim просто вставит всю эту <Plug>InsertCommentвещь в мой буфер.

Я попытался отладить и обнаружил, что если я сопоставляю

inoremap <C-A> <ESC>:call INSERT_MY_COMMENT

это все еще работает как хотелось бы, что означает, что должно быть что-то не так с <Plug>деталью.

Но я действительно понятия не имею, почему <Plug>vim перестает интерпретироваться как дескриптор для вызова других плагинов.

Я также пытался вручную скопировать и вставить

inoremap <silent> <Plug>InsertComment <ESC>:call INSERT_MY_COMMENT inoremap <C-A> <Plug>InsertComment 

в командной строке vim, просто чтобы убедиться, что конфигурации не были случайно сброшены. Но, тем не менее, vim не воспримет это как функцию, а скопирует простой текст в буфер.

0

1 ответ на вопрос

0
huangzonghao

Извините, я понял проблему. Мы просто не должны использовать noremapконфигурацию при работе с <Plug>. Изменение карты обратно imapбудет работать.