我有一个函数可以打开一个包含脚本结果的新窗口
function! MyFunc()
bo new
se buftype=nofile
silent! exec "r! sh MyScript.sh "
endfunction
我想识别这个特定的窗口,以便我可以多次调用我的函数并每次使用相同的窗口而不是打开一个新窗口。
类似
if exists(myWindow)
use myWindow
else
bo new
endif
答案 0 :(得分:2)
好的我认为这可能有用......但是......小心谨慎,因为我不是Vim专家。
第一次创建窗口时,可以将其保存在全局窗口中:
bo new
set buftype=nofile
let g:my_run_buffer = bufnr("%")
然后您可以检查该缓冲区是否存在:
if bufexists(g:my_run_buffer)
" Go to buffer
set swb=usetab
exec "sbuf " . g:my_run_buffer
else
... create it ...
endif
设置“swb = usetab”意味着当sbuf
切换到缓冲区时,它将转到当前打开的任何窗口/选项卡(如果它已打开)。我不喜欢像这样全局设置swb,仅用于一次sbuf调用。有人知道更好的方法吗?