Sans doute vous est-il arrivé, après avoir défini un raccourci du
genre Shift F4 dans votre vimrc
favori, de constater que ce
raccourci ne faisait pas l'opération attendue. Ou, plus exactement, que
les touches de ce raccourci étaient mal comprises.
Anecdote personnelle : dans un de mes fichiers de configuration de Vim, j'ai
affecté au raccourci Shift F4 la commande pdflatex
qui
permet de produire un fichier PDF avec LaTeX. Le fichier
perso-vim.vimrc
en question contient le code :
" PDFLaTeX map <S-F4> <ESC>:w<CR>:!pdflatex %<.tex<CR> imap <S-F4> <ESC>:w<CR>:!pdflatex %<.tex<CR>a
Ainsi, ce raccourci, au lieu de lancer la commande souhaitée,
effaçait deux lignes et passait en mode insertion (commande Vim : 2S
) ; on comprendra pourquoi en regardant le code bizarroïde
un peu plus bas dans cette page.
La parade fut d'affecter à Shift F4 le code réellement renvoyé par Shift F4 grâce à l'indispensable Ctrl V de Vim. Ctrl V est le raccourci qui permet d'écrire dans toutes les situations le code renvoyé par telle(s) ou telle(s) touche(s), au lieu d'effectuer l'action correspondante.
L'affectation voulue se fait en rajoutant dans vimrc
la ligne :
set <S-F4>=[1;2S
avant la déclaration du raccourci prévu.
Explication : <S-F4>, c'est Shift F4 dans le langage de Vim et le code bizarroïde est obtenu en pressant Ctrl V puis, tout de suite, Shift F4.
Pas mal, non ? Pour plus de détails, consultez le manuel de Vim sur les raccourcis : :help map
à partir du mode normal.
Par contre, il se peut dans certains cas, qu'il faille déclarer le raccourci avec son code «brut» :
map [1;5Q :!thunar $PWD &imap [1;5Q :!thunar $PWD &