我想检测我是否处于最右(或左、上、下)分割。换句话说,什么时候ctrl-w h
都无济于事。有没有办法做到这一点?
答案1
只有winnr()
,这是一个连续编号;即您只能检查左上角和右下角的窗口,但不能检查确切的窗口关系。如果您在映射/脚本中需要此信息,则必须完全按照您的描述进行操作:
function! IsLeftMostWindow()
let curNr = winnr()
wincmd h
if winnr() == curNr
return 1
endif
wincmd p " Move back.
return 0
endfunction
编辑: winnr('$') 是一种特殊情况,它返回当前选项卡中的最高索引。因此,如果 winnr() == winnr('$'),则您位于最右下角(或唯一的)窗口。
答案2
如果您在 中使用分屏vim
,您将在所有分屏的底部看到一个带有文件名的栏(以及有关光标位置的信息)。在活动窗口中,该栏中的文本以粗体显示。因此,通过检查粗体文本,您可以立即看到您激活了哪个拆分。
答案3
答案是win_screenpos({nr})
。
要测试窗口 3 是否位于最左侧,if win_screenpos(3)[1] == 1
.
要测试当前窗口是否位于最顶层,if win_screenpos(0)[0] == 1
.