отображение функциональных клавиш в vim

Я хочу отобразить мой F2 для nerdtree со следующей записью:

map <F2> :NERDTreeToggle<CR>

Но даже до этого и после сохранения vimrc всякий раз, когда я нажимаю F2 , он просто переключает регистр букв, на которых присутствует курсор. Позже выяснилось, что любая функциональная клавиша это делает. F5 переключает регистр из 5 символов и так далее. Это из-за какого-то другого плагина? В настоящее время я использую c.vim, snippetsEmu, Surround, Nerdtree и MiniBufexpl

В моем vimrc нет сопоставлений клавиш для любой функциональной клавиши.

19
задан Olivier Pons 7 August 2014 в 12:28
поделиться

2 ответа

Ваша проблема в том, что vim не знает, что выдает терминал, когда вы нажимаете . На некоторых терминалах он выдает что-то вроде [12 ~ , поэтому vim выходит из текущего режима (или просто издает звуковой сигнал, если не может) ( ), ничего не делает ( [1 : должен быть какой-то ключ после [, но не 1, поэтому он ничего не делает) и меняет регистр двух букв ( 2 ~ ). Итак, вы должны открыть .vimrc и написать там следующее:

set <F2>=<C-v><F2>

где означает, что вы должны нажать , а затем . Эта строка должна сообщать Vim точную последовательность кодов, которые выдает терминал, когда вы нажимаете . После этого используйте noremap something , и он должен работать. Если это не единственный терминал, который вы используете, вы можете поместить if $ TERM == # " = $ TERM " перед этой строкой. и endif после.

21
ответ дан 30 November 2019 в 04:20
поделиться
:map <F2> :NERDTreeToggle<CR>

После запуска Vim вы можете с помощью

:map <F2>

посмотреть, на что отображается F2. Возможно, плагины изменят отображение (не отображается в .vimrc)

6
ответ дан 30 November 2019 в 04:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: