关于正则表达式:如何在VIM中执行存储在文件中的一堆编辑器命令?

How can I execute a bunch of editor commands stored in a file in VIM?

我已阅读其他帖子,例如vim:执行编辑器命令列表和其他人。 对我来说,答案并不清楚。 我有一些我从SQL查询生成的编辑器命令。 它使用:s / foo / bar来更改国家/地区代码(从FIPS到非标准代码集)。 这是文件的示例:

1
2
3
4
5
:s/CB/CAMBO
:s/CQ/NMARI
:s/KV/KOSOV
:s/PP/PAPUA
...

我已将其保存在名为fipsToNonStd.vim的文件中(不确定正确的扩展名)。 我想一个接一个地运行这些命令。 最简单的方法是什么?

谢谢你! 太棒了!


我想你正在寻找:source命令。

您可以通过运行:help :source在vim中看到在线文档。


通常,您只想将所有这些命令放入.vim文件中。例如,您可以将它们保存在名为convert.vim的文件中:

1
2
3
:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera

此时,您可以将任何文件加载到Vim中,并在编辑器中键入以下内容:

1
:so convert.vim

或者,如果这是你需要在一个漂亮的脚本基础上做的事情,那么为什么打扰甚至打开vim呢?全部命令行。您可以通过执行以下操作来完成此操作。再次修改convert.vim:

1
2
3
4
5
:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera

:w!
:q

然后你可以在命令行上完成所有操作。假设您需要转换的"输入文件"称为data.txt。从命令行,你可以做:

1
vim -s convert.vim data.txt

这将为您处理/转换您的数据并保存并完成。


:source fileName


您可以将这些行放入稍后调用的函数中:调用FName