vim 有没有办法知道我在最左边的分裂?

Aar*_*sen 3 vim

我想检测我是否处于最右侧(或左侧、顶部、最底部)的拆分中。换句话说,什么时候ctrl-w h什么都不做。有没有办法做到这一点?

Ing*_*kat 5

只有winnr(),这是一个顺序编号;即您只能检查最左上角和最右下角的窗口,而不能检查确切的窗口关系。如果您在映射/脚本中需要此信息,则必须完全按照您的描述进行操作:

function! IsLeftMostWindow()
    let curNr = winnr()
    wincmd h
    if winnr() == curNr
        return 1
    endif
    wincmd p " Move back.
    return 0
endfunction
Run Code Online (Sandbox Code Playgroud)

编辑: winnr('$') 是一种特殊情况,它返回当前选项卡中的最高索引。因此,如果 winnr() == winnr('$'),则您位于最左侧(或唯一)窗口。