我喜欢用 vi 命令在 Gvim 中打开文件,如果 Gvim 已在运行,则在新选项卡中打开它。
function vi {
if [[ -z $@ ]]; then
gvim
elif [[ ${1:0:1} = - ]]; then
gvim "$@"
else
gvim --remote-tab-silent "$@"
fi
}
这有效,但是当我指定一个文件名并且它在现有的 Gvim 实例中打开时,它不会像在 Mac 或 Windows 上那样将窗口带到最前面。
我怎样才能使当我在终端中输入“vi file.txt”命令时,Gvim 成为活动窗口?
答案1
嗯,有点脏,可以使用xdotool
。
将其添加到您的脚本中:
xdotool windowfocus `xdotool search --name "/* - GVIM"` && xdotool windowraise `xdotool search --name "/* - GVIM"`
它搜索名为“[Something] - GVIM”的窗口并将其调出。也许,您可以使用文件名和正则表达式选择具有更具体标题的窗口。
xdotool windowfocus `xdotool search --name "^$filename\s\+\s\(~\)\s-\sGVIM"` && xdotool windowraise `xdotool search --name "^$filename\s\+\s\(~\)\s-\sGVIM"`
但xdotool
必须先从 下载apt-get
。sudo apt-get install xdotool
在终端上输入。
答案2
我也使用 xdotool。这样一个简单的脚本很有帮助:
#!/bin/bash
gvim -p --remote-tab $@ ; xdotool search --name "/* - GVIM" windowactivate