Aller au début de la ligne sans ouvrir une nouvelle ligne dans VI


231

Depuis des lustres maintenant, j'ai utilisé SHIFTOet SHIFT$pour passer au début et à la fin d'une ligne vi.

Cependant, SHIFTOc'est plus pour ouvrir une nouvelle ligne au-dessus du curseur.

Y a-t-il une commande qui vous amène juste au début d'une ligne?


9
En plus des réponses ci-dessous, tapez: help gauche-droite-mouvements dans Vim pour de nombreuses informations.
ngm

un bon livre pour vim: pratique à vim. ^ 0
2018

Réponses:


428

Vous pouvez utiliser ^ou 0(Zéro) en mode normal pour passer au début d'une ligne.

^déplace le curseur sur le premier caractère non vide d'une ligne
0déplace toujours le curseur sur la "première colonne"

Vous pouvez également utiliser Shiftipour vous déplacer et passer en mode Insertion.


5
Aussi Shift + A et Shift + I va respectivement à la fin et au début de la ligne et passe également à Insérer le modèle
bibstha

7
Pour moi, le pressage ^n'est généralement pas aussi facile que le pressage 0et wconsécutivement.
DXDXY

33

Un simple 0vous amène au début d'une ligne.

:help 0 pour plus d'informations


25

Essayez cette solution de cheatsheet Vi / Vim pour de nombreux problèmes.

Pour le mode normal:
0- [zéro] au début de la ligne, première colonne.
$- jusqu'à la fin de la ligne


12

Vous pouvez utiliser 0ou ^pour passer au début de la ligne.
Et pouvez utiliser Shift+ Ipour passer au début et passer en mode d'édition ( Insérer ).


Votre réponse est généralement correcte, mais il y a une petite mise en garde. Shift+Iou ^déplacera le curseur au début du texte de la ligne. Si la ligne a des ntabulations au début, elle déplacera le curseur vers n*tabstop + 1la colonne e. Alors que 0déplace le curseur sur la toute première colonne de la ligne.
narendra-choudhary

10

Il existe une autre manière:

|

C'est le "pipe" - le symbole trouvé sous le backspace dans la disposition ANSI .

Vim quickref ( :help quickref) le décrit comme:

N      |      to column N (default: 1)

Et les lignes enveloppées?

Si vous avez des lignes wrap est activée, 0et |ne plus vous prendre au début de la ligne d'écran. Dans ce cas, utilisez:

g0

Encore une fois, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)

Maintenant je vois pourquoi ça marche. Merci. Je me demandais. Je pense que c'est mieux que 0parce que |et $sont sur la même touche.
WesternGun


6

Déplacez le curseur au début ou à la fin avec le mode insertion

  • I - Déplace le curseur sur le premier caractère non vierge de la ligne actuelle et active le mode d'insertion.
  • A - Déplace le curseur sur le dernier caractère de la ligne actuelle et active le mode insertion.

Voici l' Iéquivalent de ^+ i. De même Aest équivalent à $+ a.

Déplacer simplement le curseur au début ou à la fin

  • ^ - Déplace le curseur sur le premier caractère non vierge de la ligne actuelle
  • 0 - Déplace le curseur sur le premier caractère de la ligne actuelle
  • $ - Déplace le curseur sur le dernier caractère de la ligne actuelle

5

Je viens de trouver 0 (zéro) et shift + 0 fonctionne sur vim.


5
shift+0c'est ), qui est la phrase suivante
mihai

Shift+0c'est mieux, ^montre le personnage et c'est ennuyeux. Merci
calbertts

1

0 Vous emmène au début de la ligne

Shift 0 Vous emmène au bout de la ligne


Shift-0 (')') ne vous emmène pas au début de la ligne
Boris Churzin

@Devenv: C'est vrai! 0 volonté
Sagar Jain

1
Shift-0 (")") est "phrase avant" et non "fin de ligne" (c'est ce que je voulais dire)
Boris Churzin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.