如何在文本文件上执行vim命令列表?

时间:2017-01-18 15:59:15

标签: vim

我有一个大约1000行的文本,我有一堆我想要应用的vim命令。很多正则表达式找到和替换的东西。例如:

  • :%s/^[^\$\$]/def
  • :%s/\$\$/
  • %s/='/ = ['

我可以逐个复制并粘贴这些命令,但是每次收到此文件的新版本时我都必须再次这样做。我想知道是否有办法保存一长串命令然后我可以应用到该文件?谢谢!

2 个答案:

答案 0 :(得分:3)

寄存器

您可以将它们全部放入寄存器,方法是在暂存缓冲区中键入这些命令,然后y进入寄存器,或者通过显式赋值:

:let @a = "%s///\n%s///"

然后,通过:@a

执行

根据您的Vim配置,寄存器内容可能会在会话中持续存在(cp。:help viminfo),但您必须小心不要覆盖它们。

脚本

更持久且更具可扩展性的解决方案是将命令放入单独的脚本文件中,理想情况下使用.vim扩展名。您可以将它们放在任何位置(~/.vim/plugin除外,除非您希望它们自动执行),然后通过

运行它们
:source /path/to/script.vim

自定义命令

如果您经常需要一组命令,可以给它们命名并将它们转换为自定义命令

:command! MyCommands %s/// | %s///

将此信息放入~/.vimrc或(如果文件类型特定),请将其设为:help ftplugin

答案 1 :(得分:1)

通常,您可以使用

从shell运行vim命令

vim -c YourCommandHere