我正在编写一个脚本文件,我必须在其中关闭打开的vim文件。那么,我如何通过shell脚本关闭或退出文件?我试过这个solution,但没有运气。我试过这种方式:
vim path_to_file/abc +qa
答案 0 :(得分:4)
要从外部shell脚本关闭现有的正在运行的Vim,您必须告诉Vim实例退出,或者让操作系统完成这项工作。
Vim内置了客户端 - 服务器功能,请参阅:help remote.txt
。如果您知道服务器名称(可以使用vim --serverlist
获取列表),则可以发送命令。例如。这告诉名为GVIM
的Vim实例退出:
$ vim --servername GVIM --remote-send '<C-\><C-N>:quitall!<CR>'
暴力:杀死所有正在运行的Vim实例: - )
$ killall vim
要查找打开特定文件的Vim实例,可以使用lsof
工具。由于Vim仅在:write
上打开文件本身,因此我们必须搜索其(永久打开的)交换文件(即.file.swp
而不是file
):
$ kill `lsof -t /path/to/.file.swp`