如何在VIM中执行存储在文件中的一堆编辑器命令?

时间:2010-03-09 16:49:03

标签: regex vim automation vi scripting

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

:s/CB/CAMBO
:s/CQ/NMARI
:s/KV/KOSOV
:s/PP/PAPUA
...

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

非常感谢! SO Rocks!

4 个答案:

答案 0 :(得分:7)

我认为你正在寻找:source命令。

通过运行:help :source,您可以在vim中看到online documentation

答案 1 :(得分:3)

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

:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera

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

:so convert.vim

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

:%s/CD/CAMBO/g
:%s/CQ/NMARI/g
" etcetera
:w!
:q

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

vim -s convert.vim data.txt

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

答案 2 :(得分:1)

:source fileName

答案 3 :(得分:0)

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