Tengo varios archivos HTML que forman un pequeño sitio web. Varias líneas de código están duplicadas en la parte superior de los archivos (aunque difieren <title>
) y algunas líneas están duplicadas en la parte inferior.
Podría usar un precompilador como Jekyll y usar diseños para tener que cambiar el código solo una vez, pero creo que esto agrega complejidad innecesaria al proyecto. Podría usar expresiones regulares (que es lo que estoy haciendo actualmente, usandoDirDo.vim), pero esto es un poco complicado.
Entonces, ¿existe algún complemento que detecte las partes idénticas de un conjunto de archivos y le permita editarlas todas a la vez? ¿O hay otras formas de hacer esto en las que quizás no haya pensado?
Respuesta1
En Vim, este problema se puede dividir en dos partes:
- Aplicar una edición a varios archivos
- Repitiendo la misma edición
Para 1., estás usando elDirDoenchufar; las alternativas serían las incorporadas :argdo
, :bufdo
, etc.
Para 2., puede usar cualquier (combinación de) comandos de Vim. El más poderoso es :substitute
usar a :[range]
para seleccionar las líneas y una expresión regular para (encontrar el punto para) modificar el texto en esas líneas.
También puede grabar una macro y volver a aplicarla mediante :normal! @a
. Por supuesto, si se trata de una edición única al comienzo de una sola línea, una repetición :[address]normal! .
sería suficiente (pero se limita a una operación de edición única y al hecho de que :normal
coloca el cursor al comienzo de la línea).
Respuesta2
Puedes usarCtrlSF.vimpara buscar un patrón determinado en todos los archivos y luego editar simultáneamente la parte alrededor de los resultados de la búsqueda usandovim-múltiples-cursores. Sin embargo, existen algunas limitaciones, por ejemplo, no se pueden agregar ni eliminar líneas (ver README.md
).