Personalmente, y tal vez en parte porque estaba usando Unix mucho antes de que existiera vim (diablos, la primera versión de Unix que usé tampoco tenía "vi", pero esa es otra historia), normalmente usaría un ' script de shell '(o, más probablemente, un script de Perl) para hacer la transformación. Para convertir los datos CSV a INSERT, tratar las comillas/no comillas y las comas incrustadas con total generalidad es complicado: probablemente pretendo utilizar un script Perl con Text :: CSV_XS para garantizar un análisis correcto. Luego, ejecutaba ese script en el rango de texto que necesitaba conversión.
Una ventaja de esto es el enfoque de la herramienta enfocada: una herramienta hace un trabajo correcto. Mi directorio bin privado tiene 300 o más scripts y programas; el directorio RCS tiene más de 500 scripts en él.
Esto no quiere decir que los scripts en vim sean malos. Utilizo (más o menos) comandos de mapas complejos para escribir manipulaciones complejas, a menudo cuando estoy a punto de tener que hacer el mismo cambio en un conjunto de archivos, y cuando no creo que valdrá la pena crear un script para el trabajo. Sin embargo, si creo que podría necesitar los cambios más de una vez, lo guiaré. Por ejemplo, GCC comenzó a mostrarse optimista (circa 2005) sobre no incrustar cadenas estáticas no utilizadas en archivos de objeto, lo que significaba que mi información de control de versión no era visible. Entonces, durante un período de años, mientras edito los archivos fuente, he convertido de un nombre estático (fijo) a un nombre público: de mala gana, pero necesariamente AFAIAC. Tengo un script que hace eso para mí, así que cuando necesito hacer el cambio en un archivo, ejecuto ese script para hacerlo. Tengo otra secuencia de comandos que actualiza la información de copyright; Lo necesito cada vez que modifico un archivo en un año determinado. Sí, probablemente podría esconderlo como algo en vim: crecí pensando que el guión separado es mejor, sobre todo porque si cambio a otro editor, aún puedo usar el guión.
Esto se puede responder en uno de sus enlaces, pero ¿se pueden almacenar las macros de qq una vez grabadas? Siempre los he usado, pero no sabía si podrían persistir en todas las sesiones. –
Las macros creadas con el comando q se almacenan en un registro, qq almacena la macro en el registro q, de modo que cuando termine la grabación simplemente puede pegar la macro, con "qp y guardarlo, luego puede cargarlo simplemente tirando del macro texto, por "qY recuerda que puedes usar cualquier registro en lugar de q ... – CMS