Comment passer en fin de ligne dans Vim?
-
01-07-2019 - |
Question
Je sais comment me déplacer généralement en mode commande, en particulier en sautant d'une ligne à une autre, etc. Mais quelle est la commande pour passer à la fin de la ligne sur laquelle je suis actuellement?
La solution
Seulement la touche $ (signe dollar) . Vous pouvez utiliser A pour vous déplacer jusqu'à la fin de la ligne et passer en mode d'édition (Ajouter). Pour sauter le dernier caractère non vide, vous pouvez appuyer sur les touches g , puis _ .
L'opposé de A est I (mode insertion en début de ligne), en aparté. Appuyez simplement sur ^ pour placer votre curseur au début de la ligne.
Autres conseils
Comme beaucoup de gens l’ont dit:
- $ vous amène à la fin de la ligne
mais aussi:
- ^ ou _ vous amène au premier caractère non-blanc de la ligne et
- 0 (zéro) vous amène au début de la ligne, incl. espace blanc
- $ passe au dernier caractère de la ligne.
-
g _ va au dernier caractère non-blanc.
-
g $ va à la fin de la ligne d'écran (lorsqu'une ligne tampon est coupée sur plusieurs lignes d'écran)
La question principale - fin de ligne
$ va en fin de ligne, reste en mode commande
Un va en fin de ligne, passe en mode insertion
Inversement - début de ligne (techniquement, le premier caractère non blanc )
^ va au début de la ligne, reste en mode commande
I (la majuscule i) va au début de la ligne, passe en mode insertion
Plus loin - début de la ligne (techniquement la première colonne indépendamment de espaces blancs )
0 (zéro) va au début de la ligne, reste en mode commande
0i (zéro suivi de minuscule i) va au début de la ligne, bascule en mode insertion
Pour ceux qui commencent à apprendre vi, voici une bonne introduction à vi en répertoriant côte à côte les commandes vi associées aux mouvements de curseur et aux touches de raccourci typiques de l’éditeur d’interface graphique Windows.
Si votre ligne actuelle contourne l'écran visible sur la ligne suivante, vous pouvez utiliser g $ pour atteindre la fin de la ligne écran .
Le signe dollar: $
L'avantage de la touche "Fin" est que cela fonctionne en mode normal et en mode insertion.
'$' fonctionne en mode normal / commande uniquement, mais également dans l'éditeur vi classique (bon à savoir lorsque vim n'est pas disponible).
Dans de nombreux cas, lorsque nous sommes à l'intérieur d'une chaîne, nous sommes entourés d'un guillemet double ou lorsque nous écrivons une déclaration, nous ne souhaitons pas appuyer sur échappement ni aller au bout de cette ligne avec la touche fléchée et appuyer sur le point-virgule (< code>; ) juste pour terminer la ligne. Écrivez la ligne suivante dans votre fichier vimrc :
imap <C-l> <Esc>$a
Que dit la ligne? Il mappe Ctrl + l à une série de commandes. Cela revient à appuyer sur Echap (mode commande), $ (fin de ligne), a (ajouter) à la fois.
Notez également la distinction entre ligne (ou peut-être une ligne physique) et ligne d'écran . Une ligne est terminée par le caractère de fin de ligne ("\ n"). Une ligne d'écran est ce qui se présente sous la forme d'une rangée de caractères sur votre terminal ou sur 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 ou autres.
La distinction apparaît également dans les commandes de fin de ligne.
- $ et 0 passent respectivement à la fin ou au début de la ligne physique ou du paragraphe:
- g $ et g 0 à la fin ou au début de la ligne d'écran ou du paragraphe, respectivement .
Si vous préférez toujours ce dernier comportement, vous pouvez remapper les clés comme suit:
:noremap 0 g0
:noremap $ g$
Appuyez sur A pour passer en mode édition à partir de la fin de la ligne.
Ou voici la réponse évidente: utilisez la touche Fin pour aller au bout de la ligne.
Peut-être indépendant, mais si vous souhaitez commencer une nouvelle ligne après la ligne actuelle, vous pouvez utiliser o n'importe où dans la ligne.
L'option la plus simple serait de saisir $ . Si vous travaillez avec des blocs de texte, vous pouvez apprécier les commandes { et } afin de déplacer un paragraphe en avant et en aval, respectivement.
J'étais habitué à l'accueil / à la fin pour me placer au début et à la fin des lignes en mode insertion (utilisation sous Windows et, je pense, sous Linux), que Mac ne prend pas en charge. Ceci est particulièrement agaçant 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 pénibles, j'ai trouvé ces lignes .vimrc
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, je suppose que Ctrl-E est réservé ou du moins, je ne pouvais pas trouver un moyen de le lier.) Enjoy.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal <*>lt;Char-13>
Il existe un bon tableau 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.
Je ne vois pas de raccourci clavier pour macbook pour utiliser vim dans un terminal standard. J'espère que ça va aider quelqu'un. Pour les utilisateurs de macOS (testé sur macbook pro 2018):
fn + & # 8592; - passe à la ligne de début
fn + & # 8594; - passe à la ligne de fin
fn + & # 8593; - déplace la page vers le haut
fn + & # 8595; - déplace la page vers le bas
fn + g - déplace le curseur au début du document
fn + shift + g - déplace le curseur à la fin du document
Pour les deux dernières commandes, il est parfois nécessaire d'appuyer deux fois.