Ir al comienzo de la línea sin abrir una nueva línea en VI

231

Desde hace mucho tiempo que he usado SHIFTOy SHIFT$para pasar al principio y al final de una línea vi.

Sin embargo, SHIFTOes más para abrir una nueva línea sobre el cursor.

¿Hay algún comando que te lleve al comienzo de una línea?

rix
fuente
99
Además de las respuestas a continuación, escriba: help izquierda-derecha-movimientos en Vim para obtener mucha información.
ngm
un buen libro para vim: practica en vim. ^ 0
陈思秀

Respuestas:

428

Puede usar ^o 0(Cero) en modo normal para moverse al comienzo de una línea.

^mueve el cursor al primer carácter no en blanco de una línea
0siempre mueve el cursor a la "primera columna"

También puede usar Shiftipara mover y cambiar al modo Insertar.

Xavier T.
fuente
55
También Shift + A y Shift + I van al final y al principio de la línea respectivamente y también cambian a Insertar modelo
bibstha
77
Para mí, presionar ^generalmente no es tan fácil como presionar 0y wconsecutivamente.
DXDXY
33

Un simple 0te lleva al principio de una línea.

:help 0 para más información

Fredrik Pihl
fuente
25

Pruebe esta solución de hoja de trucos Vi / Vim para muchos problemas.

Para el modo normal:
0- [cero] al comienzo de la línea, primera columna.
$- al final de la línea

curiosoMonkey
fuente
12

Puede usar 0o ^para moverse al comienzo de la línea.
Y puede usar Shift+ Ipara moverse al principio y cambiar al modo de edición ( Insertar ).

a8m
fuente
Su respuesta es mayormente correcta pero hay una pequeña advertencia. Shift+Io ^moverá el cursor al comienzo del texto en la línea. Si la línea tiene npestañas al principio, moverá el cursor a n*tabstop + 1la columna. Mientras 0mueve el cursor a la primera columna de la línea.
narendra-choudhary
10

Hay otra forma:

|

Esa es la "tubería": el símbolo que se encuentra debajo del espacio de retroceso en el diseño ANSI .

Vim quickref ( :help quickref) lo describe como:

N      |      to column N (default: 1)

¿Qué pasa con las líneas envueltas?

Si tiene habilitadas las líneas de ajuste 0y |ya no lo llevará al comienzo de la línea de la pantalla. En ese caso, use:

g0

De nuevo, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)
Andriy Drozdyuk
fuente
Ahora veo por qué funciona. Gracias. Me preguntaba. Creo que es mejor que 0porque |y $están en la misma clave.
WesternGun
7

Escriba "^". Y obtener un buen tutorial "Vi" :)

Skippy Fastol
fuente
6

Mueva el cursor al principio o finalice con el modo de inserción

  • I - Mueve el cursor al primer carácter no en blanco en la línea actual y habilita el modo de inserción.
  • A - Mueve el cursor al último carácter en la línea actual y habilita el modo de inserción.

Aquí Ies equivalente a ^+ i. Del mismo modo Aes equivalente a $+ a.

Simplemente moviendo el cursor al principio o al final

  • ^ - Mueve el cursor al primer carácter no en blanco en la línea actual
  • 0 - Mueve el cursor al primer carácter en la línea actual
  • $ - Mueve el cursor al último caracter en la línea actual
rashok
fuente
5

Acabo de encontrar 0 (cero) y shift + 0 funciona en vim.

brian_wang
fuente
55
shift+0esa )es la siguiente oración
mihai
Shift+0es mejor, ^muestra el personaje y eso es molesto. Gracias
calbertts
1

0 Te lleva al principio de la línea

Shift 0 Te lleva al final de la línea

Sagar Jain
fuente
Shift-0 (')') no te lleva al principio de la línea
Boris Churzin
@Devenv: ¡Eso es verdad! 0 voluntad
Sagar Jain
1
Shift-0 (")") es "oración hacia adelante", no "fin de línea" (eso es lo que quise decir)
Boris Churzin