beginning - VIM Super Fast Navigation
vim go to end of line (10)
¡vim tiene soporte para mouse! dale una oportunidad (en tu .vimrc):
set mouse=a
nota al margen : como usuario de la pantalla, he descubierto que también necesito
set ttymouse=xterm2
para que esto funcione
Lo único que extraño sobre el uso de otros editores es encontrar mi lugar con el mouse. Puedo mirar con mis ojos a un área específica en el archivo y con un movimiento del mouse y un clic Estoy allí. Con VIM tengo que jjjjjkkkkkkjjjjhhhh ... casi allí hhhhh oh mierda, me perdí por 3 caracteres, lll.
Estoy aprendiendo a hacer marcas y encontré un complemento de marcadores que es genial, puedo crear marcadores y destruirlos con <f3>
y navegar hacia ellos. Desafortunadamente, las marcas se olvidan cuando el archivo se cierra.
¿Cómo navegan todos los archivos? Sé que también podría hacer 5j7k4j5h y demás, pero debe haber un complemento que pueda leer mis ojos y poner el cursor donde realmente lo necesito.
También aprendí a usar /% para buscar un término específico. Ayuda, pero todos los caracteres coincidentes se resaltan en el documento.
Además de {
, }
, (
, )
, <number>cb
, <number>cB
, <number>cW
y %
, uso tales técnicas de navegación:
-
ciw
,diw
(ciW
,diW
). etc. para editar / eliminar rápidamente la palabra debajo del cursor (incluidos los caracteres que no sean espacios) -
ci(
,ci"
(ca(
,ca"
), etc. para editar rápidamente entre paréntesis, comillas (incluyendo paréntesis, comillas). Lo mismo aplica parad
. - Marca con letras MAYÚSCULAS para establecerlas globalmente (a través de archivos) y de forma persistente (cuando el búfer está cerrado). Por ejemplo,
mA
creará la marca globalA
que estará disponible con''A
comando (o`A
para respetar la columna). -
gf
para ir rápidamente al archivo debajo del cursor -
f
,t
(F
,T
) para moverse al char, antes de la derecha del char (izquierda) (usar;
para repetir). Estos son particularmente útiles para los comandosd
yc
(use.
Para repetir). -
^]
para pasar a la etiqueta y^T
para retroceder.
Y muchas otras formas de moverse :)
Mira esto para más información: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/
PD. Para los usuarios de rieles hay un plugin rails-vim muy útil, es posible que también desee verificarlo.
Además del comando de movimiento de vim, encuentro que un plugin de vim llamado EasyMotion es bastante útil para navegar, si estás familiarizado con vimperator o pentadactyl, EasyMotion solo trae el modo de sugerencia a vim. here hay una demostración animada y here está el video tutorial. Espero que sea útil para ti.
Con la opción número relativenumber
( : número relativo de ayuda - incluido con Vim 7.3 ) puede llegar a la línea debajo de sus ojos con el movimiento a [count]k
o [count]j
, que le permite moverse en la línea actual con movimientos como ftweb
como se explicó por @romainl.
Hay un montón de maneras de moverse en vim, esta es una de sus áreas realmente fuertes. Uso { y } mucho, que se mueve hacia arriba y hacia abajo a la siguiente línea en blanco en esa dirección. % es útil para mover hacia adelante y hacia atrás a un soporte correspondiente (de cualquier tipo). W y B avanzan y retroceden mediante una "palabra".
Puede valer la pena revisar la sección Desplazamiento del manual de Vim.
He escrito un complemento con una navegación súper rápida en mente, se llama "sin movimiento":
https://github.com/anschnapp/move-less
Le permite buscar el archivo del agujero cómodamente al desplazarse con ( h
j
k
l
-keys). No cambia la posición del cursor mientras se desplaza por el sitio del agujero (según el truco plegable). Si abortas tu búsqueda, justo donde comenzaste.
Para una navegación súper rápida, la intensión es usar mi complemento para obtener la posición de destino en la pantalla y luego saltar a la posición correcta a través de easymotion (que ya se recomendó en otra respuesta):
https://github.com/easymotion/vim-easymotion
Si combinas ambos, puedes adelantar el historial de salto y puedes saltar entre tu origen y destino solo con <co>
y <ci>
.
Pruebe $ vimtutor
, le enseñará todo lo que necesita saber para comenzar.
hjkl
es la punta de la parte superior del iceberg y muy raramente utilizado, al menos en mi caso.
wWEe
y BbgegE
permiten moverse palabra por palabra:
irá yendo hacia adelante,
W
yE
tomarán en cuenta el espacio en blanco y la puntuación" here the * marks the default location of the cursor " and each letter shows where you jump when you hit the key. Latin: Lorem ipsum dolor sit amet. * e e e * E E E * w w w w w w w * W W W W W W
b
yge
retroceden,B
ygE
tienen en cuenta el espacio en blanco y la puntuaciónLatin: Lorem ipsum dolor sit amet. b b b b * B B B * ge ge ge* ge gE gE gE*
fFtT
se utilizan para alcanzar un carácter particular en la línea actual y ;,
se utilizan para repetir ese movimiento, en la misma dirección para ;
y en la dirección opuesta para,:
fm
salta ON el siguientem
adelante,F
retrocedeLatin: Lorem ipsum dolor sit amet. * fm ; ; ; Fm *
tm
salta ANTES del siguientem
adelante,T
retrocedeLatin: Lorem ipsum dolor sit amet. * tm ; ; ; Tm *
/?
se usan para saltar a la primera aparición de un patrón desde la posición actual del cursor:
/pattern
sigue adelanteLatin: Lorem ipsum dolor sit amet. * /ips
?pattern
va hacia atrásLatin: Lorem ipsum dolor sit amet. ?Lat *
0$
se usan para saltar al primer y al último carácter de la línea.
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
0 * $
^g_
se usan para saltar al primer y último carácter imprimible de la línea.
(whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
^ * g_
Solo y combinado ()[]{}
se usan para mover frase por frase o párrafo por párrafo o bloque de código por bloque de código.
<Cb>
y <Cf>
se utilizan para desplazarse por la pantalla hacia atrás y hacia adelante.
<Cu>
y <Cd>
se utilizan para desplazarse por media pantalla hacia atrás y hacia adelante.
H
, M
y L
mueven el cursor a la parte superior, central, inferior de la ventana gráfica, respectivamente.
zt
, zz
y zb
mueven la línea debajo del cursor a la parte superior, media, inferior de la ventana gráfica, respectivamente.
Y así.
:help motion.txt
te dejará :help motion.txt
Puede :set nohlsearch
para desactivar el resaltado de sus caracteres de búsqueda.
También navego usando ctags.
personalmente prefiero usar:
"/<chars><enter>" to quickly move to somewhere ( extremely fast! trust me! )
":<number>" to go to some line,
"ctrl + f/b" to forward/back
"g;" to move to the last editing place.
"w/b" to move by word
"jklh" to move your cursor to the exact position
http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/ es un buen lugar para aprender los principales comandos de navegación, parte de la potencia / velocidad de vim proviene de la combinación de movimiento con acción, es decir, cw
-> cambiar palabra, d10j
-> eliminar 10 líneas hacia abajo, etc. También this y this son interesantes lee.