VIM中的Windows数量

Mat*_*ngo 6 vim

我想知道Vim函数当前标签页中打开了多少个窗口; 特别是,在标签页中知道特定窗口是否是最后一个,例如来自autocmd,将是很方便的.有任何想法吗?

dsu*_*rsl 7

我猜你可以使用winnr()命令完成所有操作.

winnr()本身会告诉你当前的窗口编号.winnr('$')告诉你最后一个(底部)窗口

如果您在底部窗口中,则以下将返回"1",否则返回0:

echo winnr() == winnr('$')
Run Code Online (Sandbox Code Playgroud)

举个例子,你可以做这样的事情,只在底部窗口执行一些事情:

:autocmd WinEnter * if winnr() == winnr('$')|echo "Welcome to the bottom window"|endif
Run Code Online (Sandbox Code Playgroud)

警告:这适用于垂直窗户,但我认为它根本不适用于水平窗户,或混合和匹配水平/垂直窗户.

  • 实际上根据vim文档(http://vimdoc.sourceforge.net/htmldoc/eval.html#winnr%28%29)winnr('$')是当前选项卡上的窗口数. (3认同)

Ben*_*oit 5

您还可以执行以下操作:

let window_counter = 0
windo let window_counter = window_counter + 1
echo window_counter
Run Code Online (Sandbox Code Playgroud)

:windo命令在当前选项卡的每个窗口中运行一个 ex 命令。