Я хочу отобразить мой F2
для nerdtree со следующей записью:
map <F2> :NERDTreeToggle<CR>
Но даже до этого и после сохранения vimrc всякий раз, когда я нажимаю F2
, он просто переключает регистр букв, на которых присутствует курсор. Позже выяснилось, что любая функциональная клавиша это делает. F5
переключает регистр из 5 символов и так далее. Это из-за какого-то другого плагина? В настоящее время я использую c.vim, snippetsEmu, Surround, Nerdtree и MiniBufexpl
В моем vimrc нет сопоставлений клавиш для любой функциональной клавиши.
Ваша проблема в том, что vim не знает, что выдает терминал, когда вы нажимаете
. На некоторых терминалах он выдает что-то вроде
, поэтому vim выходит из текущего режима (или просто издает звуковой сигнал, если не может) (
), ничего не делает ( [1
: должен быть какой-то ключ после [
, но не 1, поэтому он ничего не делает) и меняет регистр двух букв ( 2 ~
). Итак, вы должны открыть .vimrc и написать там следующее:
set <F2>=<C-v><F2>
где
, а затем
. Эта строка должна сообщать Vim точную последовательность кодов, которые выдает терминал, когда вы нажимаете
. После этого используйте noremap
, и он должен работать. Если это не единственный терминал, который вы используете, вы можете поместить if $ TERM == # "
перед этой строкой. и endif
после.
:map <F2> :NERDTreeToggle<CR>
После запуска Vim вы можете с помощью
:map <F2>
посмотреть, на что отображается F2. Возможно, плагины изменят отображение (не отображается в .vimrc)