¿Cómo enviar comandos desde un archivo a VIM?

¿Cómo enviar comandos desde un archivo a VIM?

Este es el contenido de cmd.txt:

:w 2.txt
:q

En la línea de comando, hago

D:\>vim 1.txt<cmd.txt

Espero cmd.txt como flujo de entrada (en lugar de mi teclado) y vim guardará 1.txt como 2.txt y luego saldrá.

Sin embargo, no funciona. Vim dice que la entrada no proviene de una terminal y se congela.

Quiero enviar comandos desde un archivo externo. ¿Como hacer esto?

Actualizar:

Lo que quiero hacer es sustituir muchos patrones. Tengo un archivo que habla de la historia de la NBA, donde el nombre de un equipo está referido a la ciudad y quiero cambiarlo por "apellido".

De alguna manera he generado los comandos de sustitución (30 reglas/filas):

:%s/\v<Boston>/Celtics/g
:%s/\v<Brooklyn>/Nets/g
:%s/\v<New York>/Knicks/g
:%s/\v<Philadelphia>/76ers/g
:%s/\v<Toronto>/Raptors/g
:%s/\v<Golden St>/Warriors/g
:%s/\v<LA Clippers>/Clippers/g
:%s/\v<LA Lakers>/Lakers/g
:%s/\v<Phoenix>/Suns/g
:%s/\v<Sacramento>/Kings/g
:%s/\v<Chicago>/Bulls/g
:%s/\v<Cleveland>/Cavaliers/g
:%s/\v<Detroit>/Pistons/g
:%s/\v<Indiana>/Pacers/g
:%s/\v<Milwaukee>/Bucks/g
.....

Quiero ingresar el archivo a vim para ejecutar estos comandos. No quiero escribir estos comandos manualmente.

Puedo generar las reglas de otra manera e ingresarlas en otro programa, o incluso escribir un programa simple para realizar la sustitución. Pero agradecería que se pueda hacer en Vim, Powershell o Total Commanders que estoy aprendiendo recientemente.

Respuesta1

Puedes hacer esto con la -sopción de línea de comando:

vim -s cmd.txt 1.txt

Sin embargo, el comentario de Teun Vink sigue siendo válido. ¿Qué estás intentando hacer realmente? Esto suena como el clásico.Problema X->Y.

Respuesta2

Sé que esta publicación es antigua, pero lo que @Gqqnbig pide es posible.

Simplemente guarde la lista de comandos que desea ejecutar con frecuencia en un archivo. Lo ideal sería darle una extensión .vim, por ejemplo, nbaEdits.vim.

En el archivo de datos en el que desea ejecutar los comandos, simplemente emita este comando desde la línea de comandos VIM (solo he probado esto a través de Windows):

:source c:\myVimCommands\nbaEdits.vim

**Lo anterior supone que su archivo de comando está ubicado en una carpeta en c:\myVimCommands

información relacionada