vim repetir buscar el siguiente carácter 'x'

123

A menudo navego en vim f xpara encontrar la siguiente aparición del carácter 'x', pero paso por alto que hay una palabra (o más palabras) que contiene 'x' entre la palabra que quiero editar y la posición inicial del cursor.

Así que tengo que hacerlo de f xnuevo, lo cual es un poco molesto ya que hay un botón agradable ., que repite el último comando. Entonces, ¿hay alguna manera de repetir f xcon solo presionar un botón?

épsilonhalbe
fuente

Respuestas:

239

El comando para repetir un fes ;(punto y coma); ,(coma) invierte la dirección de la búsqueda.

Jeremiah Willcock
fuente
2
¿Hay alguna razón útil por la que no pueda usar .para esto? Ese era el comando que esperaba que funcionara.
Daniel Kaplan
4
@DanielKaplan Tiene sentido mapear la novedad, es decir, la búsqueda de un carácter ( fy ;), a un carácter diferente a la repetición de una edición ( .). Esto le permite realizar búsquedas rápidas y cambios en los resultados de la búsqueda. Si desea reemplazar algunos +en una línea con *, podría hacer algo como esto (omitir algunos caracteres y reemplazar otros):f+r*;.;;.;.;;;.
Marcus Krahl
2
¿Hay alguna forma de reasignar esos comandos? Mucha gente usa ,para líder.
rk1
@ rk1 Cambia el líder con: let mapleader = "" (si quieres un espacio)
@DrEval Seguro, pero quiero mantener a mi líder como ,y aún tener búsqueda inversa. De todos modos, ahora soy un usuario feliz de vim-easymotion.
rk1
18

Ha pasado tiempo desde que hice esta pregunta; hoy en día uso vim-easymotion , lo que hace que sea ;casi innecesario.

Este complemento permite saltar directamente a una letra determinada; al activar el complemento, todas las letras se vuelven grises excepto todas las 'x' en la pantalla, y esas se reemplazan por letras rojas que puede presionar para saltar directamente a él.

easymotion en uso

épsilonhalbe
fuente