假设我打开了几个gvim窗口,可能会打开几个文件。
在命令行中我想要一个函数或别名,比如gvimUniq
,如果在其中一个窗口中打开文件会将该窗口置于前面,否则创建一个打开该文件的新窗口
答案 0 :(得分:0)
我已经习惯使用单个gvim窗口运行并使用标签打开文档:
gvim() {
local -u servername="${HOSTNAME}_${LOGNAME}"
local -u currentservers=$(command gvim --serverlist)
if (( $# == 0 )); then
if [[ $currentservers == *${servername}* ]]; then
command gvim --servername "$servername" --remote-send '<Esc>:tabe<CR>' || command gvim
else
command gvim --servername "$servername" || command gvim
fi
else
# http://stackoverflow.com/questions/936501/let-gvim-always-run-a-single-instance
local vi_options=()
while [[ $1 == -* ]]; do
[[ $1 != -- ]] && vi_options+=("$1")
shift
done
if [[ $currentservers == *${servername}* ]]; then
command gvim "${vi_options[@]}" --servername "$servername" --remote-tab-silent "$@" || command gvim "$@"
else
command gvim "${vi_options[@]}" --servername "$servername" "$@" || command gvim "$@"
fi
fi
}