Lo único que extraño de usar 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 ahí 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 <f3>
y navegar hacia ellos, desafortunadamente, las marcas se olvidan cuando se cierra el archivo.
¿Cómo super navegan todos los archivos? Sé que también podría hacer 5j7k4j5h y así sucesivamente, pero debe haber un complemento que pueda leer mis ojos y colocar 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 todo el documento.
fuente
Respuestas:
Pruébelo
$ vimtutor
, le enseñará todo lo que necesita saber para comenzar.hjkl
son la punta de la punta del iceberg y se usan muy poco, al menos en mi caso.wWEe
yBbgegE
todos permiten mover palabra por palabra:w
ye
siga adelante,W
yE
tenga en cuenta los espacios en blanco y la puntuaciónb
yge
retroceda,B
ygE
tenga en cuenta los espacios en blanco y la puntuaciónfFtT
se utilizan para alcanzar un carácter en particular en la línea actual y;,
se utilizan para repetir ese movimiento, en la misma dirección;
y en la dirección opuesta para,
:fm
salta al siguientem
hacia adelante,F
va hacia atrástm
salta ANTES del siguientem
avance,T
retrocede/?
se utilizan para saltar a la primera aparición de un patrón desde la posición actual del cursor:/pattern
sigue adelante?pattern
va hacia atrás0$
se utilizan para saltar al primer y último carácter de la línea.^g_
se utilizan para saltar al primer y último carácter imprimible de la línea.Único y combinado
()[]{}
se utilizan para mover frase por frase o párrafo por párrafo o bloque de código por bloque de código.<C-b>
y<C-f>
se utilizan para desplazarse por la pantalla hacia atrás y hacia adelante.<C-u>
y<C-d>
se utilizan para desplazarse por la mitad de la pantalla hacia atrás y hacia adelante.H
,M
YL
mover el cursor a la parte superior, media, parte inferior de la ventana gráfica, respectivamente.zt
,zz
Yzb
mover la línea bajo el cursor a la parte superior, media, parte inferior de la ventana gráfica, respectivamente.Y así.
:help motion.txt
te dejará boquiabierto.fuente
]}
y[{
(2 pulsaciones de tecla) salta al final o al comienzo de un alcance (por ejemplo, uno definido por{ ... }
how to jump to a line he's seeing like using a mouse
. Conozco y utilizo todas las combinaciones de teclas que mencionaste todo el tiempo. Pero aún no es tan eficiente como apuntar con el mouse al saltar grandes distancias.además del comando de movimiento de vim, encuentro que un complemento de vim llamado EasyMotion es bastante útil para navegar, si está familiarizado con vimperator o pentadactyl, EasyMotion simplemente devuelve el modo de sugerencia a vim. aquí hay una demostración animada y aquí está el video tutorial. Espero que te sea de ayuda.
fuente
Hay un trillón de formas de moverse en vim, esta es una de sus áreas realmente fuertes. Yo uso {y }mucho, que se mueven hacia arriba y hacia abajo hasta la siguiente línea en blanco en esa dirección. %es útil para moverse hacia adelante y hacia atrás a un soporte coincidente (de cualquier tipo). Wy Bavanzar y retroceder con una "palabra".
Puede que valga la pena revisar la sección Desplazarse del manual de Vim.
fuente
¡vim tiene soporte para mouse! pruébalo (en tu .vimrc):
nota al margen : como usuario de la pantalla, he descubierto que también necesito
para que esto funcione.
fuente
personalmente prefiero usar:
fuente
Con la opción
relativenumber
( : ayuda número relativo - incluida 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 movimientosftweb
como los explicados por @romainl.fuente
Aparte de
{
,}
,(
,)
,<number>cb
,<number>cB
,<number>cW
y%
, utilizo estas técnicas la navegación:ciw
,diw
(ciW
,diW
). etc. para editar / eliminar rápidamente la palabra debajo del cursor (incluidos los caracteres que no son espacios)ci(
,ci"
(ca(
,ca"
), etc. para editar rápidamente entre paréntesis, comillas (incluidos paréntesis, comillas). Lo mismo se aplica ad
.mA
creará una marca globalA
que estará disponible con'A
comando (o`A
para respetar la columna).gf
para ir rápidamente al archivo debajo del cursorf
,t
(F
,T
) para moverse al carácter, antes del carácter a la derecha (izquierda) (usar;
para repetir). Son particularmente útiles para los comandosd
yc
(se usan.
para repetir).^]
moverse a la etiqueta y^T
retroceder.Y muchas otras formas de moverse :)
Consulte esto para obtener más información: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/
PD: Para los usuarios de rails, hay un complemento rails-vim muy útil, es posible que también desee comprobarlo.
fuente
Este es un buen lugar para aprender los principales comandos de navegación, parte del poder / velocidad de vim proviene de la combinación de movimiento con acción, es decir
cw
-> cambiar palabra,d10j
-> borrar 10 líneas hacia abajo, etc. También esto y esto son lecturas interesantes.fuente
Puede
:set nohlsearch
desactivar el resaltado de sus caracteres de búsqueda.Navego mucho usando ctags también.
fuente
Escribí un complemento con una navegación súper rápida en mente, se llama move-less:
https://github.com/anschnapp/move-less
Te permite buscar cómodamente el archivo del agujero desplazándote 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 de plegado). Si aborta su búsqueda, estará justo donde comenzó.Para una navegación súper rápida, la intenció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 combina ambos, incluso podría avanzar en el historial de saltos y puede saltar entre su origen y destino de destino simplemente a través de
<c-o>
y<c-i>
.fuente