我想从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 -v
(mvim
是MacVim附带的启动脚本。
这有两个不幸的后果:(1)系统vim无法识别--serverlist
; (2)即使它确实我的脚本随后会启动错误的vim。
在我的路径上调用vim的最佳方式是什么?
答案 0 :(得分:2)
默认的vim永远不会使用+clientserver
构建,因此您不想放弃的可移植性从未开始。
别名未在bash脚本中展开,因此如果您没有明确表示使用该脚本,则您的脚本不会看到mvim -v
。此外,您的vim
是别名,因此它不在PATH
。
您可以在脚本顶部附近的某处定义一个环境变量,并使用它代替vim
:
#!/usr/bin/env bash
VIM='/path/to/mvim'
"$VIM" -v whatever
或者将你的别名变成一个合适的脚本。
或者,也许可以在mvim
之前放置PATH
并明确致电mvim -v
。