【问题标题】:Automate inputs to vim in a bash or perl script [closed]在 bash 或 perl 脚本中自动输入 vim [关闭]
【发布时间】:2014-06-06 17:27:37
【问题描述】:

我有一个脚本,它在 foreach 循环中调用外部程序。每次循环迭代时,这个外部程序都会打开一个 vim 终端来添加我的 cmets。有什么办法可以使这部分自动化吗?任何指针将不胜感激。

【问题讨论】:

    标签: perl bash vim automation vi


    【解决方案1】:

    问题是:你能控制外部工具对 Vim 的调用吗?!

    通常,此类程序使用$EDITOR 之类的环境变量来确定用户首选的编辑器程序。如果是这种情况(或者您甚至可以修改外部工具),您可以编写一个非交互式编辑器替换脚本,该脚本会自动应用您希望自动化的任何更改。这是sed 的简单示例:

    #/bin/sh
    sed -i -e 's/foo/bar/' "$@"
    

    如果 Vim 调用是硬编码的,您可能必须将此脚本命名为 vim,并与 $PATH 混淆,以使其被外部工具拾取。

    【讨论】:

    • 这也是我的建议。另一个 - hakish - 解决方案可能是使用 expect 包装脚本执行并传递所需的输入。
    • 感谢 Ingo Karkat。这是在外部脚本中硬编码的,所以我必须使用第二个选项,在本地脚本中弄乱 $PATH。有道理。
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多