key-bindings – Agrupar secuencias de comandos para repetir (.)

Pregunta:

Considerar:

apple
pear

Coloque el cursor en la primera línea y escriba Yp , produciendo:

apple
apple
pear

Coloque el cursor en la línea de pear y escriba . para repetir el último comando. Esto repite solo la p (en lugar de la combinación Yp ), produciendo:

apple
apple
pear
apple

Quisiera una forma de saberlo . para repetir los últimos N comandos. Algo como 2. repetir la combinación Yp para producir:

apple
apple
pear
pear

Ofc que no funcionará; repite la p dos veces. Pero la idea sería "repetir la secuencia de los 2 últimos comandos".

Sé que puedo q -grabar secuencias de comandos y repetirlas con @@ , pero esta solución no es ideal, ya que requiere que haya estado planeando con anticipación todo el tiempo, mientras que en la práctica a menudo no se da cuenta de que necesita repetir algo hasta que lo hayas hecho.

¿Hay alguna forma de lograr lo que quiero?

Premio de consolación: Si lo anterior no es posible, ¿hay alguna forma de repetir la última reproducción de macro? Por ejemplo, si escribí @@ para reproducir mi última macro, me gustaría para la siguiente . para ser equivalente a escribir @@ nuevamente, lo cual no es (por ejemplo, si el resultado de @@ depende de la línea en la que se encuentra)

Respuesta:

Vim solo almacena el último comando ejecutado, y solo ese se repite . ; en mi opinión, cualquier otra cosa sería difícil de manejar.

Si siente la necesidad de repetir el combo Yp como una sola entidad, debe convertirlo en un solo comando. El complemento repeat.vim de Tim Pope permite hacerlo fácilmente para asignaciones personalizadas. Por supuesto, si elige una [secuencia] de clave corta para el mapeo, puede volver a escribirla rápidamente (en lugar de . ), E incluso evitar la integración de repeat.vim.

Por cierto, mi complemento LineJuggler proporciona un mapeo ]d para duplicar la línea actual, y admite la repetición a través de repeat.vim.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım