La seule chose qui me manque dans l'utilisation d'autres éditeurs, c'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 je suis là. Avec VIM, je dois jjjjjkkkkkjjjhhhh ... presque là hhhhh oh merde j'ai raté 3 caractères, lll.
J'apprends à faire des marques et j'ai trouvé un plugin de marque-pages qui est génial, je peux créer des marqueurs et les détruire avec <f3>
et naviguer vers eux avec malheureusement les marques sont oubliées lorsque le fichier est fermé.
Comment naviguez-vous tous dans les fichiers? Je sais que je pourrais aussi faire 5j7k4j5h et ainsi de suite, mais il doit y avoir un plugin qui peut lire mes yeux et placer le curseur là où j'en ai vraiment besoin.
J'ai également 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.
la source
Réponses:
Essayez
$ vimtutor
, cela vous apprendra tout ce que vous devez savoir pour commencer.hjkl
sont la pointe du sommet de l'iceberg et sont très rarement utilisés, du moins dans mon cas.wWEe
etBbgegE
tous permettent de se déplacer mot par mot:w
ete
aller de l'avant,W
etE
prendre en compte les espaces et la ponctuationb
etge
revenir en arrièreB
etgE
prendre en compte les espaces et la ponctuationfFtT
sont utilisés pour atteindre un caractère particulier sur la ligne courante et;,
sont utilisés pour répéter ce mouvement, dans le même sens pour;
et dans le sens opposé pour,
:fm
saute sur le prochainm
avant,F
reculetm
saute AVANT le prochainm
avant,T
recule/?
sont utilisés pour passer à la première occurrence d'un motif à partir de la position actuelle du curseur:/pattern
va de l'avant?pattern
va en arrière0$
sont utilisés pour sauter au premier et au dernier caractère de la ligne.^g_
sont utilisés pour sauter au premier et au dernier caractère imprimable de la ligne.Simple et combiné
()[]{}
sont utilisés pour déplacer phrase par phrase ou paragraphe par paragraphe ou bloc de code par bloc de code.<C-b>
et<C-f>
sont utilisés pour faire défiler l'écran vers l'arrière et vers l'avant.<C-u>
et<C-d>
sont utilisés pour faire défiler d'un demi-écran vers l'arrière et vers l'avant.H
,M
EtL
déplacer le curseur vers le haut, au milieu, en bas de la fenêtre, respectivement.zt
,zz
Etzb
déplacer la ligne sous le curseur vers le haut, au milieu, en bas de la fenêtre, respectivement.Etc.
:help motion.txt
va souffler votre esprit.la source
]}
et[{
(2 touches) saute à la fin ou au début d'une portée (par exemple, celle définie par{ ... }
how to jump to a line he's seeing like using a mouse
. Je connais et j'utilise toutes les combinaisons de touches que vous avez mentionnées tout le temps. Mais ce n'est toujours pas aussi efficace que de pointer une souris lors d'un saut à grande distance.outre la commande motion de vim, je trouve qu'un plugin vim nommé EasyMotion est assez utile pour naviguer, si vous êtes familier avec vimperator ou pentadactyl, EasyMotion ramène simplement le mode hint à vim. voici une démo animée et voici le tutoriel vidéo. J'espère que cela vous sera utile.
la source
Il existe des millions de façons de se déplacer dans vim, c'est l'un de ses domaines vraiment forts. J'utilise {et }beaucoup, qui montent et descendent jusqu'à la prochaine ligne vierge dans cette direction. %est utile pour aller et venir vers une parenthèse correspondante (de tout type). WetB avancer et reculer par un "mot".
Il pourrait être utile de consulter la section Déplacement du manuel Vim.
la source
vim prend en charge la souris! essayez ceci (dans votre .vimrc):
Remarque : en tant qu'utilisateur d'écran, j'ai constaté que j'avais également besoin
pour que cela fonctionne.
la source
personnellement je préfère utiliser:
la source
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
, que vous vous laissez déplacer dans la ligne actuelle avec des mouvements commeftweb
expliqué par @romainl.la source
A part
{
,}
,(
,)
,<number>cb
,<number>cB
,<number>cW
et%
, j'utilise des techniques de la navigation:ciw
,diw
(ciW
,diW
). etc. pour modifier / supprimer rapidement le mot sous le curseur (y compris les caractères non espace)ci(
,ci"
(ca(
,ca"
), etc. pour éditer rapidement entre parenthèses, guillemets (y compris les parenthèses, les guillemets). Il en va de même pourd
.mA
créera une marque globaleA
qui sera disponible avec la'A
commande (ou`A
pour respecter la colonne).gf
pour aller rapidement au fichier sous le curseurf
,t
(F
,T
) pour passer au caractère, avant le caractère à droite (à gauche) (à utiliser;
pour répéter). Celles-ci sont particulièrement utiles pour les commandesd
etc
(à utiliser.
pour répéter).^]
pour passer à l'étiquette et^T
pour reculer.Et plein 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 plugin rails-vim très utile, vous voudrez peut-être le vérifier aussi.
la source
c'est un bon endroit pour apprendre les principales commandes de navigation, une partie de la puissance / vitesse de vim vient de la combinaison du mouvement avec l'action c'est
cw
-à- dire -> changer le mot,d10j
-> supprimer 10 lignes vers le bas etc. Aussi ceci et ceci sont des lectures intéressantes.la source
Vous pouvez
:set nohlsearch
désactiver la mise en évidence de vos caractères de recherche.Je navigue aussi beaucoup en utilisant des ctags.
la source
J'ai écrit un plugin avec une navigation ultra rapide à l'esprit, il s'appelle sans mouvement:
https://github.com/anschnapp/move-less
Il vous permet de rechercher le fichier de trous confortablement en faisant défiler avec (
h
j
k
l
-keys). Vous ne changez pas la position de votre curseur lors du défilement du site du trou (basé sur une astuce de pliage). Si vous abandonnez votre recherche, vous êtes là où vous avez commencé.Pour une navigation ultra rapide, l'intention est d'utiliser mon plugin pour obtenir la position cible sur l'écran, puis de sauter à la bonne position via easymotion (ce qui était déjà recommandé par une autre réponse):
https://github.com/easymotion/vim-easymotion
Si vous combinez les deux, vous pouvez même avancer l'historique des sauts et vous pouvez sauter entre votre origine et votre destination cible simplement via
<c-o>
et<c-i>
.la source