Como la mayoría de ustedes probablemente sepa, puede usar %
para buscar hacia adelante en la línea para encontrar el siguiente paréntesis / paréntesis / par y moverse a su compañero coincidente:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Espero que haya una clave similar que busque hacia atrás en la línea, por ejemplo:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
La mayoría de los comandos vim tienen tanto hacia atrás como hacia adelante, por lo que parece que debería ser así. ¿No tiene pareja? Si es así, ¿es porque una vez que está en un personaje emparejado actuarían igual?
vim
keyboard-shortcuts
Kevin
fuente
fuente
%
no solo busca el par de paréntesis en la misma línea, sino más abajo en el archivo. Me gusta especialmente para bucles, etc. en cualquier lenguaje de programa de elección.g%
comando que parece similar a lo que está buscando.Respuestas:
Si realmente desea buscar hacia atrás los caracteres coincidentes comunes, puede usar uno de estos
vim
comandos específicos:[(
... (ir al(
personaje anterior sin igual )[{
... (ir al{
personaje anterior sin igual )Estos dos comandos tienen socios de reenvío coincidentes:
])
... (ir al siguiente)
personaje sin igual )]}
... (ir al siguiente}
personaje sin igual )Hay otros comandos similares para
#ifdef
y para comentarios de C.Puedes encontrar más cuando estás
vim
usando el comando:help %
.fuente
%
entonces va en ambos sentidos: encontrar el compañero compatible. Además, si está dentro de un bloque, los comandos anteriores encontrarán la coincidencia adecuada.% encuentra el soporte correspondiente. Entonces, si está activado (o {buscará hacia adelante.
Si está en un} o) buscará hacia atrás.
% no es direccional, solo encuentra el soporte correspondiente.
fuente
Acabo de intentarlo
:map ^] ^%%
(con^]
= Ctrl+ v Ctrl+ 5aquí, como analogía con%
= Shift+ 5).Funciona para el caso específico dado, pero como no busca hacia atrás desde el cursor, siempre seleccionará el primer paréntesis abierto en la línea y dejará el cursor al comienzo de la línea si no encuentra ninguna coincidencia. .
Esta es una mejor solución; es feo y probablemente haya mucho espacio para simplificar, pero creo que la semántica es correcta (no mueve el cursor si no hay un par abierto, y se mueve al primer par abierto antes de la columna actual).
para
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnfuente
[(
funcionaría igual de bien y no requiere amap
.