Comment puis-je créer une page Maj + barre d'espace dans Vim?
-
07-07-2019 - |
Question
J'ai une entrée dans mon fichier .vimrc qui la fait défiler dans la fenêtre d'affichage lorsque je tape sur la barre d'espace. Cela ressemble à ceci:
map <Space> <PageDown>
Je souhaite créer un autre mappage de touches qui ouvre la fenêtre de visualisation lorsque vous maintenez la touche Maj enfoncée et appuyez sur la barre d'espace. J'ai essayé les entrées suivantes:
map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Ni travail. Quelqu'un sait comment réaliser cette fonctionnalité?
La solution
Vous ne pouvez pas. La solution de CMS fonctionnera pour gVim, mais pas dans vim, car les terminaux ne peuvent pas distinguer & Lt; Space & Gt; et < S-Space > parce que les malédictions les voient les mêmes. Cela pourrait être possible à l'avenir si vim obtient le support de libtermkey et que votre terminal supporte le & Lt; CSI & Gt; séquences (xterm le fait si correctement configuré; rien d’autre ne le fait encore).
Autres conseils
Si vous utilisez vim dans iTerm2, vous pouvez mapper shift-space sur ctrl + U en envoyant la clé hexagonale 15. Voici une capture d'écran:
Pour rechercher un code hexadécimal pour une combinaison ctrl + lettre, par exemple ctrl + u, procédez comme suit:
- Dans vim, entrez en mode insertion
- Appuyez sur ctrl + v puis ctrl + u puis ctrl + c puis ga
- diverses représentations numériques seront imprimées en bas
Vous pouvez appliquer cette idée à d'autres émulateurs de terminal prenant en charge le mappage de clés.
Utilisez ceci:
map <Space> ^D " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space
Pour obtenir correctement les symboles ^ D et ^ U, appuyez simplement sur Control-V Control-D et Control-V Control-U
Pour OSX:
nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>