Ответ 1
Ваша проблема в том, что vim не знает, что терминал испускает, когда вы нажимаете <F2>
. На некоторых терминалах он испускает что-то вроде <Esc>[12~
, поэтому vim выходит из текущего режима (или просто подает звуковой сигнал, если он не может) (<ESC>
), ничего не делает ([1
: после [
должен быть некоторый ключ, но не 1, поэтому он ничего не делает) и изменяет регистр двух букв (2~
). Итак, вы должны открыть .vimrc и записать там следующее:
set <F2>=<C-v><F2>
где <C-v><F2> означает, что вы должны нажать <C-v>
, а затем <F2>
. Эта строка должна указывать Vim точную последовательность кодов, которая испускается терминалом при нажатии <F2>
. После этого используйте noremap <F2> whatever
, и он должен работать. Если это не единственный терминал, который вы используете, вы можете поставить if $TERM==#"<C-r>=$TERM<CR>"
перед этой строкой и endif
после.