如何从bash运行vimscript,并在bash脚本中获取输出?

时间:2014-10-23 03:56:16

标签: bash automation vim

我想从命令行运行一些vimscript。具体来说,我想检查我的vim实例上是否已经安装了Command-T(如果没有,我想安装它)。

我可以在vim中运行一些命令来检测Command-T的存在,例如exists("CommandTFlush")如果存在则返回0,如果不存在则返回2.

如何从bash脚本调用此函数,并在bash中解释结果?

1 个答案:

答案 0 :(得分:3)

我最终使用了以下命令。由于vim使用ncurses,你不能回显任何东西,但你可以读取vim进程的返回码。如果你用:cquit退出vim,vim将以返回码1退出,否则它将以0退出。我们可以用它来确定函数的成功/失败。

将以下内容添加到文件中并将其另存为check-command-t.vim

:let cmdt = exists("CommandTFlush")
:if cmdt == 2
    " It's not installed.
    :cquit
:else
    :exit
:endif

从bash我们想用vim -s check-command-t.vim告诉vim运行文件中的所有命令。

if vim -s check-command-t.vim; then
    # The command exited with return code 0; command-T is installed
else
    # not installed
fi