VIM Navigation super rapide

La seule chose qui me manque dans l’utilisation d’autres éditeurs est de trouver ma place avec la souris. Je peux regarder avec mes yeux une zone spécifique du fichier et avec un mouvement de la souris et un clic que je suis là. Avec VIM je dois jjjjjkkkkkkjjjjhhhh … presque là hhhhh oh merde j’ai raté par 3 personnages, lll.

J’apprends à faire des marques et j’ai trouvé un plugin de signets qui est génial, je peux créer des marqueurs et les détruire avec et y accéder avec malheureusement les marques sont oubliées quand le fichier est fermé.

Comment naviguez-vous tous les fichiers? Je sais que je pourrais aussi faire 5j7k4j5h et ainsi de suite, mais il doit y avoir un plugin capable de lire mes yeux et de placer le curseur là où j’en ai vraiment besoin.

J’ai aussi appris à utiliser /% pour rechercher un terme spécifique. Cela aide, mais tous les caractères correspondants sont mis en évidence tout au long du document.

Essayez $ vimtutor , cela vous apprendra tout ce que vous devez savoir pour commencer.

hjkl sont la pointe du sumt de l’iceberg et très rarement utilisés, du moins dans mon cas.

wWEe et BbgegE permettent tous de déplacer mot par mot:

  • w et e aller de l’avant, W et E prennent en compte les espaces et la ponctuation

     " here the * marks the default location of the cursor " and each letter shows where you jump when you hit the key. Latin: Lorem ipsum dolor sit amet. * eee * EEE * wwwwwww * WWWWWW 
  • b et ge reculent, B et gE tiennent compte des espaces et de la ponctuation

     Latin: Lorem ipsum dolor sit amet. bbbb * BBB * ge ge ge* ge gE gE gE* 

fFtT sont utilisés pour atteindre un caractère particulier sur la ligne en cours et fFtT sont utilisés pour répéter ce mouvement, dans le même sens pour ; et dans le sens inverse pour:

  • fm saute sur le prochain m avant, F recule

     Latin: Lorem ipsum dolor sit amet. * fm ; ; ; Fm * 
  • tm saute avant le prochain m avant, T recule

     Latin: Lorem ipsum dolor sit amet. * tm ; ; ; Tm * 

/? sont utilisés pour sauter à la première occurrence d’un motif à partir de la position actuelle du curseur:

  • /pattern avance

     Latin: Lorem ipsum dolor sit amet. * /ips 
  • ?pattern retourne en arrière

     Latin: Lorem ipsum dolor sit amet. ?Lat * 

0$ sont utilisés pour sauter au premier et au dernier caractère de la ligne.

  (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace) 0 * $ 

^g_ permettent de passer au premier et au dernier caractère imprimable de la ligne.

  (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace) ^ * g_ 

Simple et combiné ()[]{} sont utilisés pour déplacer phrase par phrase ou paragraphe par paragraphe ou par bloc de code par bloc de code.

et sont utilisés pour faire défiler l’écran vers l’arrière et vers l’avant.

et permettent de faire défiler par demi-écran en arrière et en avant.

H , M et L déplacent le curseur vers le haut, le milieu et le bas de la fenêtre, respectivement.

zt , zz et zb déplacent la ligne sous le curseur vers le haut, le milieu et le bas de la fenêtre, respectivement.

Etc.

:help motion.txt va :help motion.txt .

Outre la commande de mouvement de vim, je trouve qu’un plugin vim nommé EasyMotion est très utile pour naviguer, si vous êtes familier avec vimperator ou pentadactyl, EasyMotion ramène simplement le mode indice à vim. Voici une démo animée et voici le tutoriel vidéo. J’espère que c’est utile pour vous.

Il y a un million de façons de se déplacer dans vim, c’est l’une de ses zones les plus fortes. J’utilise beaucoup { et } , qui montent et descendent vers la ligne blanche suivante dans cette direction. % est utile pour aller et venir sur un support correspondant (de n’importe quel type). W et B avancent et reculent par un “mot”.

Il peut être utile de consulter la section Déplacement du manuel de Vim.

vim a le support de la souris! essayez ceci (dans votre .vimrc):

 set mouse=a 

Note sidenote : en tant qu’utilisateur d’écran, j’ai trouvé que j’avais aussi besoin

 set ttymouse=xterm2 

pour que cela fonctionne.

personnellement je préfère utiliser:

 "/" to quickly move to somewhere ( extremely fast! trust me! ) ":" to go to some line, "ctrl + f/b" to forward/back "g;" to move to the last editing place. "w/b" to move by word "jklh" to move your cursor to the exact position 

En dehors de { , } , ( , ) , cb , cB , cW et % , j’utilise ces techniques de navigation:

  • ciw , diw ( ciW , diW ). etc. pour éditer / supprimer rapidement un mot sous le curseur (y compris les caractères autres que des espaces)
  • ci( , ci" ( ca( , ca" ), etc. pour éditer rapidement les parenthèses, les guillemets (y compris les parenthèses, les guillemets). Il en va de même pour d .
  • Marque avec des lettres majuscules pour les définir globalement (sur plusieurs fichiers) et de manière persistante (lorsque la mémoire tampon est fermée). Par exemple, mA créera une marque globale A qui sera disponible avec 'A commande 'A (ou `A à respecter).
  • gf pour aller rapidement au fichier sous le curseur
  • f , t ( F , T ) pour passer au caractère, avant le caractère à droite (à gauche) (utilisez ; pour répéter). Celles-ci sont particulièrement utiles pour les commandes d et c (utiliser . Pour répéter).
  • ^] pour passer à l’étiquette et ^T pour reculer.

Et beaucoup d’autres façons de bouger 🙂

Consultez ceci pour plus d’informations: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/

PS Pour les utilisateurs de rails, il existe un plug-in de rails-vim très utile, que vous pouvez également consulter.

Avec l’option relativenumber ( : help relativenumber – inclus avec Vim 7.3 ), vous pouvez accéder à la ligne sous vos yeux avec le mouvement a [count]k ou [count]j , qui vous permet de vous déplacer dans la ligne courante avec des mouvements comme ftweb par @romainl.

c’est un bon endroit pour apprendre les principales commandes de navigation, une partie de la puissance / vitesse de vim provient de la combinaison du mouvement avec l’action cw -> change word, d10j -> supprime 10 lignes, etc. lit.

Vous pouvez :set nohlsearch pour désactiver le surlignage de vos caractères de recherche.

Je navigue aussi en utilisant ctags.

J’ai écrit un plugin avec la navigation super rapide en tête, ça s’appelle move-less:

https://github.com/anschnapp/move-less

Il vous permet de rechercher facilement le fichier de trous en faisant défiler avec ( h j k l -keys). Vous ne changez pas la position de votre curseur tout en faisant défiler le site du trou (basé sur le pliage). Si vous abandonnez votre recherche, vous venez juste de commencer.

Pour une navigation ultrarapide, il faut utiliser mon plugin pour obtenir la position cible à l’écran, puis passer à la bonne position via easymotion (ce qui était déjà recommandé dans une autre réponse):

https://github.com/easymotion/vim-easymotion

Si vous combinez les deux, vous pouvez même avancer dans l’historique des sauts et vous pouvez sauter entre votre destination d’origine et votre destination cible simplement via et .