这是的内容cmd.txt
:
:w 2.txt
:q
在命令行中,我这样做
D:\>vim 1.txt<cmd.txt
我希望 cmd.txt 作为输入流(而不是我的键盘),并且 vim 将把 1.txt 保存为 2.txt 然后退出。
但是它不起作用。Vim 说输入不是来自终端并且冻结。
我想从外部文件发送命令。该怎么做?
更新:
我想要做的是替换很多模式。我有一个关于 NBA 历史的文件,其中球队的名称指的是城市,我想将其更改为“姓氏”。
我以某种方式生成了替换命令(30条规则/行):
:%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
.....
我想将文件输入到 vim 中来执行这些命令。我不想手动输入这些命令。
我可能会用另一种方式生成规则并将其输入到其他程序中,甚至编写一个简单的程序来进行替换。但如果可以在我最近学习的 Vim、Powershell 或 Total Commanders 中完成,我将不胜感激。
答案1
答案2
我知道这个帖子已经很旧了,但@Gqqnbig 的要求是可能的。
只需将您想要经常执行的命令列表保存到一个文件中。最好给它一个 .vim 扩展名,例如 nbaEdits.vim
在您想要执行命令的数据文件中,只需从 VIM 命令行发出此命令(我只通过 Windows 尝试过此命令):
:source c:\myVimCommands\nbaEdits.vim
**以上假设你的命令文件位于 c:\myVimCommands 文件夹中