Expande el movimiento fy t a las siguientes líneas

16

¿Hay alguna manera de que t{char}y f{char}continuará trabajando en las siguientes líneas si {char}no está presente en una línea determinada?

Me gustaría evitar usar /{char}<CR>para guardar 1 pulsación de tecla y no tener resaltado de búsqueda, especialmente cuando necesito esto en combinación con verbos (por ejemplo dfa, ct.).

cbaumhardt
fuente
2
Puede hacer d/apara eliminar a la siguiente ay c/.eliminar a la siguiente .. Si lo usa hlsearchy no lo desea al realizar esta operación, puede crear una asignación que realice su d/operación y luego deshabilite el resaltado (termina con :nohlsearch).
jjaderberg
2
Puede usar (o estudiar) un complemento como github.com/rhysd/clever-f.vim (con el g:clever_f_across_no_lineconjunto a 0 y otras opciones habilitadas / deshabilitadas a voluntad).
VanLaser
1
Dahu hizo un complemento para esto: github.com/dahu/vim-fanfingtastic
EvergreenTree
1
Todavía creo que el mejor complemento para esto es easymotion
Vitor
1
También hice un plugin: improvedft
Cristiano Brabandt

Respuestas:

6

También estuve usando dahu / vim-fanfingtastic durante algún tiempo y lo encontré muy útil. Admite repeticiones semánticas .gracias a la biblioteca tpope / repeat.vim, que también debe instalar.

Una alternativa es chrisbra / betterft que hace más o menos lo mismo.

rhysd / clever-f.vim tiene una opción para habilitar la búsqueda multilínea, aunque su característica principal es permitir frepetir la búsqueda actual, como ;ya lo hace.

Esos todos manejan ;y ,llaves como se esperaba.

La desventaja con varias líneas fy tes que si se pulsa la tecla equivocada, se le llevará fuera de la línea actual a algún lugar inesperado en el archivo. Ctrl-Opuede ayudar en esos momentos (Esto puede ser peligroso con un ccambio si no te das cuenta de que acabas de tragar algunas líneas, pero esas fueron solo problemas iniciales para mí).

Hay otros complementos relacionados, con enfoques ligeramente diferentes, como justinmk / vim-sneak y goldfeld / vim-seek que solicitan dos caracteres , lo que hace que sea más fácil (pero aún no está garantizado) alcanzar la ubicación de destino.

Y luego está easymotion / vim-easymotion . Esto ofrece muchas teclas de movimiento potentes , algunas de las cuales requieren una pulsación de tecla adicional o dos para confirmar el personaje objetivo cuando hay muchos candidatos.


Pero actualmente estoy usando una solución local. Yo trabajé con el autor de EasyMotion hacer fy t parpadeará marcadores recuento sobre todos los caracteres que coinciden por delante de usted.

ingrese la descripción de la imagen aquí

Esto actúa como un asistente de conteo natural para los movimientos de vainilla vim. Cuando intentas moverte a algún lado fxpero luego descubres que hay más xs en el camino de lo que pensabas, puedes leer el número que apareció sobre el personaje al que estabas apuntando y luego [count];saltar.

Puedes encontrar la sucursal aquí . Asegúrese de leer la sección Agregue sugerencias útiles para configurar las asignaciones de teclas.

Sin embargo, para las coperaciones de cambio, todavía es preferible hacerlo bien la primera vez . En esos casos, recomiendo gastar una pulsación de tecla adicional en vmodo Visual, o usar uno de los saltos garantizados de EasyMotion.

joeytwiddle
fuente