vim 自动化 ex 命令

vim 自动化 ex 命令

是的,我知道,我可以使用 sed。但让我们假设我有点变态。如果你愿意的话,可以说是一个受虐狂。

我有一个文件,/tmp/a.script包含:

%s_"taxonomy\.php[^"]*\([0-9]\)_"\1.taxonomy_g
%s_"rtf\.php[^"]*\([0-9]\)_"\1.rtf_g
%s_"csv\.php[^"]*\([0-9]\)_"\1.csv_g
%s_"xml\.php[^"]*\([0-9]\)_"\1.xml_g

(我从我的 vim 历史记录中抓取了它们)

我非常希望 vim 针对文件执行这些命令,比如说example.html

但是,我不知道如何针对该文件执行该脚本。

我知道-c命令行参数。但是它只执行一个命令,我想执行所有这些命令。

有任何想法吗?

答案如下,供参考,一个快速的 sed 方法是:

for i in *.html ; do
  sed -i'' -e 's_"taxonomy\.php[^"]*\([0-9]\)_"\1.taxonomy_g'  $i
  sed -i'' -e 's_"rtf\.php[^"]*\([0-9]\)_"\1.rtf_g' $i
  sed -i'' -e 's_"csv\.php[^"]*\([0-9]\)_"\1.csv_g' $i
  sed -i'' -e 's_"xml\.php[^"]*\([0-9]\)_"\1.xml_g' $i
  echo $i
done

答案1

你有没有尝试过:source

vim example.html -c "source /tmp/a.script"

相关内容