如何从bash脚本重启vim?

时间:2014-10-20 12:18:24

标签: bash vim

我想从bash脚本重启vim,以便vim接收带外更改。我几乎让它工作但我仍然试图确定使用什么来启动vim。

这就是我所拥有的:

#!/usr/bin/env bash
local servername=$(vim --serverlist)
[ -n "$servername" ] && {
  vim --servername "$servername" --remote-send '<C-\><C-N>:mks! _session.vim<CR>:wqa<CR>'
  vim -S _session.vim
  sleep 1
  rm _session.vim
}

问题是脚本调用的vim/usr/bin/vim上非常过时的系统vim,而不是{my}} {i}的别名mvim -vmvim是MacVim附带的启动脚本。

这有两个不幸的后果:(1)系统vim无法识别--serverlist; (2)即使它确实我的脚本随后会启动错误的vim。

在我的路径上调用vim的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

  1. 默认的vim永远不会使用+clientserver构建,因此您不想放弃的可移植性从未开始。

  2. 别名未在bash脚本中展开,因此如果您没有明确表示使用该脚本,则您的脚本不会看到mvim -v。此外,您的vim别名,因此它不在PATH

  3. 您可以在脚本顶部附近的某处定义一个环境变量,并使用它代替vim

    #!/usr/bin/env bash
    
    VIM='/path/to/mvim'
    
    "$VIM" -v whatever
    

    或者将你的别名变成一个合适的脚本。

    或者,也许可以在mvim之前放置PATH并明确致电mvim -v