Je sais comment me déplacer généralement en mode commande, en particulier en sautant sur les lignes, etc. Mais quelle est la commande pour passer à la fin de la ligne sur laquelle je suis actuellement?
vim
editor
keyboard-shortcuts
vi
salt.racer
la source
la source
vimtutor
c'est super. Ils ne le savaient probablement pas?Réponses:
Juste la touche $ (signe dollar) . Vous pouvez utiliser Apour passer à la fin de la ligne et passer en mode édition (Ajouter). Pour sauter le dernier caractère non vierge, vous pouvez appuyer sur gpuis sur les _touches.
L'opposé de Aest I(mode d'insertion au début de la ligne), comme un aparté. Appuyez simplement sur ^pour placer votre curseur sur le premier caractère non blanc de la ligne.
la source
g_
g_
variation est parfois plus utile car elle n'inclut pas les caractères videsComme beaucoup de gens l'ont dit:
mais aussi:
la source
|
commande pipe peut prendre un compte, par exemple 3 | pour passer à la troisième colonne.g _ passe au dernier caractère non blanc.
g $ va à la fin de la ligne d'écran (lorsqu'une ligne tampon est enroulée sur plusieurs lignes d'écran)
la source
b
va au début du mot précédent qui n'est pas du tout la même chose. C'est à peu près équivalent à$ge
._
etg_
pour le visual / yanking, comme$
copiera / supprimera également le nouveau caractère de ligne (LN).g_
est le seul moyen que j'ai trouvé pour arriver à la fin de la ligne.$
va jusqu'au bout de la ligne même lorsqu'il est emballé pour moi. Je ne connais aucun paramètre pour ajuster son comportement. Peut-être qu'il a été remappé par votre .vimrc eng$
?La question principale - la fin de la ligne
$ passe en fin de ligne, reste en mode commande
A passe en fin de ligne, passe en mode insertion
Inversement - début de ligne (techniquement le premier caractère non blanc )
^ passe au début de la ligne, reste en mode commande
I (majuscule i) passe au début de la ligne, passe en mode insertion
Plus loin - début de la ligne (techniquement la première colonne indépendamment des espaces )
0 (zéro) va au début de la ligne, reste en mode commande
0i (zéro suivi de minuscules i) passe en début de ligne, passe en mode insertion
Pour ceux qui commencent à apprendre vi, voici une bonne introduction à vi en listant côte à côte les commandes vi au mouvement de curseur et aux touches de raccourci typiques de l'éditeur GUI Windows.
éditeur vi pour les utilisateurs de Windows
la source
I
n'est pas0
mais^
, comme les deuxI
et^
passe au premier caractère non blanc de la ligne mais0
passe à la colonne zéro (comme son nom l'indique).0
serait l'analogue de ? (allez au premier caractère (= colonne 0) de la ligne et passez en mode insertion)0i
. :-)Si votre ligne actuelle s'enroule autour de l'écran visible sur la ligne suivante, vous pouvez utiliser g $ pour atteindre la fin de la ligne d' écran .
la source
gw
, cegq
sont des commandes qui reformatent le texte. (voir:h gw
et:h gq
) Ce qui s'est probablement passé, c'est que vous l'avez faitgw{motion}
et que vous avez modifié du texte afin que les lignes de l'écran correspondent aux lignes réelles.Le signe dollar: $
la source
Dans de nombreux cas, lorsque nous sommes à l'intérieur d'une chaîne, nous sommes entourés d'un guillemet double, ou lors de l'écriture d'une instruction, nous ne voulons pas appuyer sur échapper et aller à la fin de cette ligne avec la touche fléchée et appuyer sur le point-virgule (
;
) juste pour terminer la ligne. Écrivez la ligne suivante dans votre fichier vimrc :Que dit la ligne? Il associe Ctrl + l à une série de commandes. Cela revient à appuyer sur Esc(mode commande), $(fin de ligne), a(ajouter) à la fois.
la source
vim
vous permet certainement de faire beaucoup plus en beaucoup moins de temps avec des choses comme ça. @razorxpress, un ajustement mineur seraitimap <C-l> <Esc>A
, ce qui rend Ctrl + l l'équivalent d'appuyer surEsc
(quitter le mode d'insertion), puisA
(ajouter à la fin de la ligne).inoremap <C-l> <C-o>A
L'avantage de la touche «Fin» est qu'elle fonctionne en mode normal et en mode d'insertion.
'$' fonctionne uniquement en mode normal / commande mais il fonctionne également dans l'éditeur vi classique (bon à savoir lorsque vim n'est pas disponible).
la source
Notez également la distinction entre la ligne (ou peut-être la ligne physique) et la ligne d'écran . Une ligne se termine par le caractère de fin de ligne ("\ n"). Une ligne d'écran est tout ce qui apparaît comme une seule ligne de caractères dans votre terminal ou dans votre écran. Les deux se séparent si vous avez des lignes physiques plus longues que la largeur de l'écran, ce qui est très courant lors de la rédaction d'e-mails, etc.
La distinction apparaît également dans les commandes de fin de ligne.
Si vous préférez toujours ce dernier comportement, vous pouvez remapper les clés comme ceci:
la source
g_
est le dernier espace non blanc de la ligne physique . Que diriez-vous de la ligne d'écran?Appuyez sur Apour passer en mode édition à partir de la fin de la ligne.
la source
Ou il y a la réponse évidente: utilisez la Endclé pour aller au bout de la ligne.
la source
Je ne vois pas de raccourci clavier pour macbook pour utiliser vim dans un terminal standard. J'espère que cela aidera quelqu'un. Pour les utilisateurs de macOS (testé sur macbook pro 2018):
Pour les deux dernières commandes, il faut parfois taper deux fois.
la source
Peut-être sans rapport, mais si vous souhaitez commencer une nouvelle ligne après la ligne actuelle, vous pouvez utiliser o n'importe où dans la ligne.
la source
L'option la plus simple serait de saisir $. Si vous travaillez avec des blocs de texte, vous pourriez apprécier la commande {et }afin de déplacer un paragraphe en arrière et en avant, respectivement.
la source
J'étais habitué à Home / End à me placer au début et à la fin des lignes en mode Insertion (depuis Windows et je pense que Linux), que Mac ne prend pas en charge. C'est particulièrement ennuyeux car lorsque j'utilise vim sur un système distant, je ne peux pas non plus le faire facilement. Après quelques essais et erreurs douloureux, j'ai trouvé ces
.vimrc
lignes qui font la même chose, mais liées à Ctrl-A pour le début de la ligne et Ctrl-D pour la fin de la ligne. (Pour une raison quelconque, Ctrl-E, je suppose, est réservé ou du moins je ne pouvais pas trouver un moyen de le lier.) Profitez-en.Il y a un bon tableau ici pour les codes de caractères de contrôle ASCII ici pour les autres:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Vous pouvez également faire Ctrl-V + Ctrl-, mais cela ne colle pas aussi bien à des endroits comme celui-ci.
la source