【发布时间】:2014-06-06 17:27:37
【问题描述】:
我有一个脚本,它在 foreach 循环中调用外部程序。每次循环迭代时,这个外部程序都会打开一个 vim 终端来添加我的 cmets。有什么办法可以使这部分自动化吗?任何指针将不胜感激。
【问题讨论】:
标签: perl bash vim automation vi
我有一个脚本,它在 foreach 循环中调用外部程序。每次循环迭代时,这个外部程序都会打开一个 vim 终端来添加我的 cmets。有什么办法可以使这部分自动化吗?任何指针将不胜感激。
【问题讨论】:
标签: perl bash vim automation vi
问题是:你能控制外部工具对 Vim 的调用吗?!
通常,此类程序使用$EDITOR 之类的环境变量来确定用户首选的编辑器程序。如果是这种情况(或者您甚至可以修改外部工具),您可以编写一个非交互式编辑器替换脚本,该脚本会自动应用您希望自动化的任何更改。这是sed 的简单示例:
#/bin/sh
sed -i -e 's/foo/bar/' "$@"
如果 Vim 调用是硬编码的,您可能必须将此脚本命名为 vim,并与 $PATH 混淆,以使其被外部工具拾取。
【讨论】:
expect 包装脚本执行并传递所需的输入。