Map Shift + F3 dans .vimrc

14

Lorsque j'utilise vimgrep avec lv expr path/**, j'aime avoir un raccourci pour naviguer dans les résultats. J'ai donc mappé la F3clé comme suit:

nnoremap <F3> :lnext<CR>

Maintenant, je voudrais faire quelque chose comme ce qui suit

nnoremap <SHIFT-F3> :lprevious<CR>

Mais cela n'a pas l'effet souhaité. Comment mapper une touche F avec SHIFT?

Mettre à jour:

La solution est un peu difficile. Dans les terminaux, vous ne pouvez pas simplement cartographier Shift+ F3. En fait, une ligne supplémentaire comme celle-ci est nécessaire:

set <S-F3>=^[O1;2R
nnoremap <S-F3> :lprevious<CR>

Mais vous ne pouvez pas copier / coller cela, voir le lien ci-dessous dans la bonne réponse.

Trendfischer
la source

Réponses:

15

Vous utilisez Vim dans la console, pas GVIM, non? Tout autre chose que les touches de fonction simples est problématique, et mieux vaut éviter; essayez d'utiliser un préfixe comme à la <Leader>place. Si vous le voulez vraiment, vous pouvez essayer les instructions sur http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim pour faire fonctionner les touches de fonction avec les modificateurs.

Ingo Karkat
la source
Ce lien était très utile, je ne m'attendais même pas à un problème comme celui-ci. Bien que ce ne soit pas la réponse que je souhaitais lire, c'est la bonne réponse à mon avis. Et en suivant les conseils avec les codes de touches rapides, j'ai pu mapper la combinaison de touches comme vous le souhaitez.
Trendfischer
7

Ce ne devrait <S-F3>pas être le cas <SHIFT-F3>, voir :help key-notationdans Vim.

livibetter
la source
Oui, c'est la réponse que je voulais avoir, mais cela n'a pas fonctionné de cette façon. Vous avez besoin de: définir pour le faire fonctionner dans un terminal.
Trendfischer
0

De nos jours, il n'est pas nécessaire de définir des codes clés supplémentaires pour les touches fonctionnelles, il vous suffit de:

nnoremap <s-f3> :lprevious<cr>

Testé sur NeoVim.

Quelqu'un s'il vous plaît essayez-le sur VIM propre afin que je puisse mettre à jour cette réponse.

cprn
la source