我有一个大约1000行长的文本,我有一堆vim命令需要应用到它上面。很多正则表达式查找和替换。例如:
:%s/^[^\$\$]/def
:%s/\$\$/
%s/='/ = ['
:%s/^[^\$\$]/def
:%s/\$\$/
%s/='/ = ['
你可以将所有命令放入一个 寄存器 中,通过在 scratch 缓冲区中输入这些命令并使用 y
命令复制到寄存器中,或者通过显式赋值来实现:
:let @a = "%s///\n%s///"
然后,通过:@a
执行。
根据您的Vim配置,寄存器内容可能会跨会话保持不变(参见:help viminfo
),但您必须小心,不要覆盖它们。
更持久且更可扩展的解决方案是将命令放入单独的脚本文件中,最好使用.vim
扩展名。您可以将它们放在任何地方(除了~/.vim/plugin
,除非您希望自动执行它们),然后通过以下方式运行它们:
:source /path/to/script.vim
如果你经常需要一组命令,可以给它们起一个名称并将它们转换成自定义命令:
:command! MyCommands %s/// | %s///
~/.vimrc
中,或者(如果是特定文件类型),将其制作为:help ftplugin
。vim -c 您的命令