mappage des touches de fonction dans vim
Je veux ma carte F2
pour nerdtree avec l'entrée suivante:
map <F2> :NERDTreeToggle<CR>
Mais même avant cela, et après l'enregistrement de l'vimrc , à chaque fois que j'appuie sur F2
il passe juste à de la casse des lettres sur lequel le curseur est présent. Découvert plus tard que tout de la touche de fonction t-il. F5
commutateurs cas de 5 caractères, et ainsi de suite. Est-ce à cause de certains autre plugin? Je l'ai utiliser pour l'instant c.vim , snippetsEmu , surround , nerdtree , et minibufexpl
Il n'y a pas keymappings à une touche fonction dans mon vimrc.
source d'informationauteur woodstok
Vous devez vous connecter pour publier un commentaire.
Votre problème, c'est que vim ne sais pas qu'est-terminal émettent lorsque vous appuyez sur
<F2>
. Sur certains terminaux, il émet quelque chose comme<Esc>[12~
de sorte que le vim quitte le mode actuel (ou juste des bips si il ne peut pas) (<ESC>
), ne fait rien ([1
: il doit y avoir une clé après[
mais pas 1, donc il ne fait rien) et les changements de cas de deux lettres (2~
). Donc, vous devez l'ouvrir .vimrc et y écrire le suivant:où <C-v><F2> signifie que vous devez appuyer sur
<C-v>
et puis<F2>
. Cette ligne devrait dire à la Vim la séquence exacte des codes émis par le terminal lorsque vous appuyez sur<F2>
. Après cela, utiliseznoremap <F2> whatever
et cela devrait fonctionner. Si ce n'est pas le seul terminal que vous utilisez, alors vous voudrez peut-être mettreif $TERM==#"<C-r>=$TERM<CR>"
avant cette ligne etendif
après.Après le démarrage de Vim, vous pouvez regarder avec
ce F2 est mappé. Il est possible que les plugins modifier le mappage (non visible .vimrc)