Comment passer au début ou à la fin de la ligne dans vim + OS X


17

Dans le terminal, je peux le faire en appuyant sur shift + home et shift + end, mais cela ne semble pas fonctionner dans vim. Les touches Accueil et Fin font uniquement défiler la fenêtre du terminal. Je voudrais sauter en mode édition.


4
En mode commande, vous pouvez trouver sur la feuille de triche Vim (0 et $): fprintf.net/vimCheatSheet.html . Je ne connais pas le mode d'édition, cependant.
Gnoupi

Réponses:


13

Cette réponse suppose que vous utilisez vim dans une fenêtre de terminal .

Les liaisons par défaut pour Home et End sont un peu différentes de ce à quoi un programme devrait s'attendre sur la base du paramètre TERM habituel (c'est-à-dire une variante xterm). Si vous souhaitez vous en tenir aux liaisons par défaut (et avoir à utiliser les variantes Shifted dans Terminal ), vous pouvez essayer de mettre quelque chose comme ça dans votre .vimrc:

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

Sinon, vous pouvez essayer d'ajuster les codes que Terminal envoie lorsque vous utilisez Home et End (même sans décalage, si vous le souhaitez). Une recherche trouverait probablement des endroits qui décrivent comment le faire (en voici un ). L'idée de base est que vous voulez que Terminal envoie ESC [1 ~ au lieu de ESC [H pour la maison et ESC [4 ~ au lieu de ESC [F pour la fin (ou Shift-Home / Shift-End si vous voulez garder la maison / Fin pour accéder au défilement). Je décrirais le processus plus en détail, mais je n'ai que 10.4, et je sais que Terminal a beaucoup changé en 10.5 et versions ultérieures.


8

Avec iTerm et Vim, vous pouvez utiliser fn + flèches droite et gauche en mode insertion pour sauter au début ou à la fin de la ligne. Avec Terminal.app, vous utilisez Maj + flèches .



1

En plus de la réponse de Chris , vous pouvez également réaliser la navigation par mot (avec les Option+arrowtouches), simplement en ajoutant ces quatre lignes:

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

Remarquez que les omajuscules sont minuscules, de sorte qu'il ne quitte pas le insertmode pour l'opération. Vous pouvez également modifier les majuscules Odans la réponse d'origine pour le même effet.


0

Dans MacVim, vous pouvez utiliser les commandes «Flèche gauche» et «Flèche droite» pour aller au début et à la fin de la ligne tout en étant en mode édition.


On dirait que JtR utilise vim dans Terminal.app au lieu d'utiliser MacVim (que je recommande fortement et que j'utilise également).
Matrix Mole

0

Allez dans Terminal -> Préférences -> Profils -> Clavier et ajoutez:

Touche: ↖ Action: \ 033OH

Touche: ↗ Action: \ 033OF

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.