#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>. Я не мог видеть никакого другого переназначения.