Sé cómo moverme generalmente en modo comando, específicamente, saltar a líneas, etc. Pero, ¿cuál es el comando para saltar al final de la línea en la que estoy actualmente?
vimtutor
es genial. ¿Probablemente no lo sabían?
Sé cómo moverme generalmente en modo comando, específicamente, saltar a líneas, etc. Pero, ¿cuál es el comando para saltar al final de la línea en la que estoy actualmente?
vimtutor
es genial. ¿Probablemente no lo sabían?
Respuestas:
Solo la tecla $ (signo de dólar) . Puede usar Apara moverse al final de la línea y cambiar al modo de edición (Agregar). Para saltar el último carácter no en blanco, puede presionar ga continuación _las teclas.
Lo contrario de Aes I(Modo de inserción al comienzo de la línea), como un lado. Presionando solo ^colocará el cursor en el primer carácter de la línea que no sea un espacio en blanco.
g_
g_
variación, ya que no incluye caracteres en blanco
Como mucha gente ha dicho:
pero también:
|
comando de tubería puede contar, por ejemplo, 3 | para saltar a la tercera columna.
g _ va al último carácter que no sea un espacio en blanco.
g $ va al final de la línea de la pantalla (cuando una línea de búfer se ajusta a varias líneas de pantalla)
b
va al comienzo de la palabra anterior, que no es lo mismo en absoluto. Es más o menos equivalente a $ge
.
_
y g_
para visual / yanking, ya $
que también copiará / eliminará el carácter de nueva línea (LN).
g_
es la única forma que encontré para llegar al final real de la línea.
$
va al final de la línea incluso cuando está envuelto para mí. No conozco ninguna configuración para ajustar su comportamiento. Tal vez ha sido reasignado por su .vimrc a g$
?
La pregunta principal: fin de línea
$ va al final de la línea, permanece en modo comando
A va al final de la línea, cambia al modo de inserción
Por el contrario, inicio de línea (técnicamente, el primer carácter que no es un espacio en blanco )
^ va al inicio de la línea, permanece en modo comando
I (mayúscula i) va al inicio de la línea, cambia al modo de inserción
Además - inicio de línea (técnicamente la primera columna independientemente del espacio en blanco )
0 (cero) va al inicio de la línea, permanece en modo comando
0i (cero seguido de minúscula i) va al inicio de la línea, cambia al modo de inserción
Para aquellos que comienzan a aprender vi, aquí hay una buena introducción a vi al enumerar los comandos vi lado a lado con el movimiento típico del cursor del editor de la GUI de Windows y las teclas de acceso directo.
I
no es 0
sino ^
, ya que ambos I
y ^
van al primer carácter de la línea que no es un espacio en blanco, sino que 0
van a la columna cero (como su nombre lo indica).
0
sería el análogo de (vaya al primer carácter (= columna 0) de la línea y vaya al modo de inserción)
0i
. :-)
Si su línea actual se ajusta alrededor de la pantalla visible en la siguiente línea, puede usar g $ para llegar al final de la línea de la pantalla .
gw
y gq
son comandos que reformatean el texto. (ver :h gw
y :h gq
) Lo que probablemente sucedió fue que hiciste gw{motion}
y cambiaste un texto para que las líneas de la pantalla correspondieran a las líneas reales.
El signo de dólar: $
En muchos casos, cuando estamos dentro de una cadena estamos encerrados entre comillas dobles, o al escribir una declaración no queremos presionar escape e ir al final de esa línea con la tecla de flecha y presionar el punto y coma ( ;
) solo para terminar la línea. Escriba la siguiente línea dentro de su archivo vimrc :
imap <C-l> <Esc>$a
¿Qué dice la línea? Asigna Ctrl + l a una serie de comandos. Es equivalente a presionar Esc(modo comando), $(final de línea), a(agregar) de una vez.
vim
ciertamente le permite hacer mucho más en mucho menos tiempo con cosas como esta. @razorxpress, sería un ajuste menor imap <C-l> <Esc>A
, que hace que Ctrl + l sea el equivalente a presionar Esc
(salir del modo de inserción), luego A
(agregar al final de la línea).
inoremap <C-l> <C-o>A
La ventaja de la tecla 'Fin' es que funciona tanto en modo normal como en modo de inserción.
'$' funciona solo en modo normal / comando pero también funciona en el editor vi clásico (es bueno saber cuando vim no está disponible).
También tenga en cuenta la distinción entre línea (o quizás línea física) y línea de pantalla . Una línea finaliza con el carácter Fin de línea ("\ n"). Una línea de pantalla es lo que se muestra como una fila de caracteres en su terminal o en su pantalla. Los dos se separan si tiene líneas físicas más largas que el ancho de la pantalla, lo cual es muy común al escribir correos electrónicos y demás.
La distinción también se muestra en los comandos de fin de línea.
Si siempre prefiere el último comportamiento, puede reasignar las teclas de esta manera:
:noremap 0 g0
:noremap $ g$
g_
es el último espacio no en blanco de la línea física . ¿Qué tal línea de pantalla?
O hay una respuesta obvia: use la Endtecla para ir al final de la línea.
No puedo ver la tecla de acceso rápido para macbook para usar vim en terminal estándar Espero que ayude a alguien. Para usuarios de macOS (probado en macbook pro 2018):
fn+ ← - mover a la línea de inicio
fn+ → - mover a la línea final
fn+ ↑ - subir página
fn+ ↓ - mueve la página hacia abajo
fn+ g - mueve el cursor al comienzo del documento
fn+ shift + g - mueve el cursor al final del documento
Para los dos últimos comandos, en algún momento debe tocar dos veces.
Estaba acostumbrado a Inicio / Fin, llevándome al inicio y al final de las líneas en modo Insertar (desde el uso en Windows y creo que Linux), que Mac no admite. Esto es particularmente molesto porque cuando estoy usando vim en un sistema remoto, tampoco puedo hacerlo fácilmente. Después de algunas pruebas y errores dolorosos, se me ocurrieron estas .vimrc
líneas que hacen lo mismo, pero vinculadas a Ctrl-A para el inicio de la línea y Ctrl-D para el final de la línea. (Por alguna razón, Ctrl-E supongo que está reservado o al menos no pude encontrar una manera de vincularlo). Disfruta.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>
Aquí hay un buen gráfico para los códigos de caracteres de control ASCII aquí para otros también:
http://www.physics.udel.edu/~watson/scen103/ascii.html
También puedes hacer Ctrl-V + Ctrl- también, pero eso no pega tan bien en lugares como este.