Como enviar comandos de um arquivo para o VIM?

Como enviar comandos de um arquivo para o VIM?

Este é o conteúdo de cmd.txt:

:w 2.txt
:q

Na linha de comando, eu faço

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

Espero cmd.txt como fluxo de entrada (em vez do meu teclado) e o vim salvará 1.txt como 2.txt e depois sairá.

No entanto, não funciona. Vim diz que a entrada não vem de um terminal e congela.

Quero enviar comandos de arquivo externo. Como fazer isso?

Atualizar:

O que eu quero fazer é substituir muitos padrões. Tenho um arquivo que fala sobre a história da NBA, onde o nome de um time se refere à cidade e quero mudar para o "sobrenome".

De alguma forma, gerei os comandos de substituição (30 regras/linhas):

:%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
.....

Quero inserir o arquivo no vim para executar esses comandos. Não quero digitar esses comandos manualmente.

Posso gerar as regras de outra forma e inseri-las em outro programa, ou até mesmo escrever um programa simples para fazer a substituição. Mas agradecerei se isso puder ser feito no Vim, Powershell ou Total Commanders que estou aprendendo recentemente.

Responder1

Você pode fazer isso com a -sopção de linha de comando:

vim -s cmd.txt 1.txt

No entanto, o comentário de Teun Vink ainda é válido. O que realmente você está tentando fazer? Isso parece o clássicoProblema X->Y.

Responder2

Eu sei que este post é antigo, mas o que @Gqqnbig está pedindo é possível.

Basta salvar a lista de comandos que deseja executar com frequência em um arquivo. O ideal é dar uma extensão .vim, por exemplo, nbaEdits.vim

No arquivo de dados que você deseja executar os comandos, simplesmente emita este comando na linha de comando do VIM (eu só tentei isso via Windows):

:source c:\myVimCommands\nbaEdits.vim

**O texto acima pressupõe que seu arquivo de comando esteja localizado em uma pasta em c:\myVimCommands

informação relacionada