web-dev-qa-db-fra.com

Comment passer en fin de ligne dans Vim?

Je sais comment me déplacer généralement en mode commande, en particulier en sautant d'une ligne à l'autre, etc. Mais quelle est la commande pour sauter en fin de ligne sur laquelle je suis actuellement?

1105
salt.racer

Seulement le $ (signe dollar) clé. Vous pouvez utiliser A pour aller au bout de la ligne et passer en mode d’édition (Ajouter). Pour sauter le dernier caractère non vide, vous pouvez appuyer sur g ensuite _ clés.

L'opposé de A est I (Mode insertion en début de ligne), en aparté. En appuyant simplement sur ^ placera votre curseur au début de la ligne.

1907
dvorak

Comme beaucoup de gens l'ont dit:

  • $ vous amène au bout de la ligne

mais aussi:

  • ^ ou _ vous amène au premier caractère non-blanc de la ligne, et
  •  (zéro) vous amène au début de la ligne incl. les espaces
287
Rob Wells
  • $ 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 (quand une ligne tampon est enroulée sur plusieurs lignes d'écran)

132
Paul Ruane

La question principale - fin de ligne

$ va en fin de ligne, reste en mode commande

A 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 (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 )

 (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, passe en mode insertion

Pour ceux qui commencent à apprendre vi, voici une bonne introduction à vi en répertoriant côte à côte les commandes vi pour décrire le mouvement du curseur et les touches de raccourci de l'éditeur graphique Windows typique.

éditeur vi pour les utilisateurs Windows

58
ap-osd

Si votre ligne actuelle entoure l'écran visible jusqu'à la ligne suivante, vous pouvez utiliser g $ pour arriver à la fin du écran ligne.

41
Commodore Jaeger

Le signe dollar: $

12
David Singer

L'avantage de la touche 'Fin' est qu'elle fonctionne aussi bien en mode normal qu'en mode insertion.

'$' fonctionne en mode normal/commande uniquement, mais également dans l'éditeur vi classique (bon à savoir lorsque vim n'est pas disponible).

12
Diastrophism

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 instruction, nous ne voulons pas appuyer sur échappement ni aller au bout 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:

imap <C-l> <Esc>$a

Que dit la ligne? Il mappe Ctrl + l à une série de commandes. C'est comme si tu pressais Esc (mode de commande), $ (fin de ligne), a (annexe) à la fois.

12
Pramod

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, etc.

La distinction apparaît également dans les commandes de fin de ligne.

  • $ et  passez à la fin ou au début de la ligne physique ou du paragraphe, respectivement:
  • g$ et g déplacez-vous à 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$
11
loevborg

Presse A entrer en mode édition à partir de la fin de la ligne.

9
Brian

Ou bien la réponse évidente est d'utiliser le End touche pour aller au bout de la ligne.

9
davr

Peut-être non lié, mais si vous voulez commencer une nouvelle ligne après la ligne actuelle, vous pouvez utiliser o n'importe où dans la ligne.

6
graywh

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 +  - déplacer à la ligne de début

fn +  - déplacer à la ligne de fond

fn +  - déplacer la page vers le haut

fn +  - déplacer 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 faut parfois appuyer deux fois.

4

La solution la plus simple serait de saisir $. Si vous travaillez avec des blocs de texte, vous pouvez apprécier la commande { et } afin de déplacer un paragraphe en arrière et en avant, respectivement.

3
paranza

J'étais habitué à Home/End pour me rendre au début et à la fin des lignes en mode Insertion (utilisé sous Windows et je pense que 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, je suis arrivé à 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, Ctrl-E, je suppose, est réservé ou du moins, je ne pourrais pas trouver un moyen de le lier.) Enjoy.

:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>

Il y a un bon graphique ici pour les codes de caractères de contrôle ASCII ici aussi 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.

2
Marcus