vim: окна панели тегов, открывающиеся при вводе в обычном режиме

#vim #tagbar

#vim #панель тегов

Вопрос:

При вводе <Enter> в обычном режиме в Vim с установленным плагином Tagbar окно Tagbar открывается автоматически. Я хочу отключить эту функциональность. Что я должен делать?

Ответ №1:

поместите текущий код в вас .vimrc

 unmap <cr>
  

Ответ №2:

Ваше сопоставление для <C-m> на самом деле является причиной того, что клавиша Enter открывает панель тегов. Если вы удалите эту карту из своего vimrc, клавиша ввода больше не будет срабатывать :TagbarToggle .

Сопоставления для <C-m> и <CR> (Enter) являются синонимами в Vim:

В следующей таблице показано соответствие между некоторыми клавишами на клавиатуре и эквивалентной комбинацией клавиш Ctrl:

Ctrl-I Вкладка
Ctrl-[ Esc
Ctrl-M Ввод
Ctrl-H Пробел

Если вы используете одну из комбинаций клавиш Ctrl в приведенной выше таблице на карте, карта также применяется к соответствующей клавише. Обе клавиши выдают один и тот же код сканирования ключа. Например, если вы создаете карту для CTRL-I, вы можете вызвать карту, нажав Ctrl-I или клавишу Tab.

Это означает, что при настройке nmap <C-m> :TagbarToggle<CR> это то же самое, что и при настройке nmap <CR> :TagbarToggle<CR> .

Вероятно, вы захотите выбрать новую клавишу вместо M. Альтернативой является изменение кода ключа, отправленного <C-m> на уровне операционной системы, с помощью какой-либо программы переназначения.

Привязки клавиш терминала поступают из readline, программы, которая обрабатывает вводимый текст в приглашении вашего терминала. Полный список привязок клавиш приведен в руководстве readline.

Вы можете найти дополнительную информацию о кодах клавиш Vim, набрав :help keycodes в Vim или прочитав справочные документы здесь.

Комментарии:

1. Большое спасибо за ваше решение. Это работает отлично.

2. @LongMaX рад помочь! Поскольку это решило проблему, пожалуйста, отметьте это как принятый ответ, чтобы помочь другим, которые могут столкнуться с такой же проблемой.

Ответ №3:

Попробуйте:help tagbar открыть документацию. Похоже, у вас может быть сопоставление в вашем файле vimrc, которое гласит что-то вроде

 nnoremap <silent> <CR> :TagbarToggle<CR>
  

или

 nnoremap <silent> <CR> :TagbarOpen<CR>
  

если вы найдете и удалите это сопоставление, панель тегов больше не будет открываться

Комментарии:

1. Спасибо за ваше предложение. Я поддержал переназначение команд TagbarToggle и TagbarOpen на клавиатуре во всех моих файлах конфигурации vim. Я переназначил TagbarToggle только на <C-m>, а не на <slient> <CR>. Я не мог видеть никакого другого переназначения.