46 votes

Comment créer une page Maj + barre d'espace dans Vim?

J'ai une entrée dans mon .vimrc qui la fait défiler la fenêtre lorsque je frappe la barre d'espace. Cela ressemble à ceci:

 map <Space> <PageDown>
 

Je veux créer un autre mappage de touches qui affiche la fenêtre 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>
 

Aucun travail. Quelqu'un sait comment réaliser cette fonctionnalité?

37voto

Zathrus Points 5385

Vous ne pouvez pas. La solution de CMS fonctionnera pour gVim, mais pas dans vim car les terminaux ne peuvent pas faire la distinction entre <Space> et <S-Space> car curses les voit de la même façon. Il pourrait être possible à l'avenir si vim gagne le support de libtermkey et que votre terminal prend en charge les séquences <CSI> appropriées (xterm le fait s'il est correctement configuré; rien d'autre ne le fait encore).

16voto

Bijou Trouvaille Points 1067

Si vous utilisez vim à l'intérieur de iTerm2 vous pouvez décalage de carte-espace ctrl+U par l'envoi de la clé à six pans de 15. Voici une capture d'écran:

enter image description here

Pour rechercher un code hexadécimal d'un ctrl+combinaison de lettres, par exemple ctrl+u, vous pouvez effectuer les opérations suivantes:

  • Dans vim entrer dans le mode insertion
  • Appuyez sur ctrl+v, puis ctrl+u puis ctrl+c puis ga
  • différentes représentations numériques sera imprimé en bas

Vous pouvez appliquer cette idée à d'autres émulateurs de terminaux qui prennent en charge le mappage des touches.

6voto

CMS Points 315406

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

3voto

Steve McKinney Points 943

Pour OSX:

 nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X