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?

rix
la source
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.

Xavier T.
la source
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

Fredrik Pihl
la source
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

curiousMonkey
la source
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 ).

a8m
la source
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)
Andriy Drozdyuk
la source
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
7

Tapez "^". Et obtenez un bon tutoriel "Vi" :)

Skippy Fastol
la source
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
rashok
la source
5

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

brian_wang
la source
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

Sagar Jain
la source
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