vim이 내가 가장 왼쪽 분할에 있는지 알 수 있는 방법이 있나요?

vim이 내가 가장 왼쪽 분할에 있는지 알 수 있는 방법이 있나요?

나는 가장 오른쪽(또는 왼쪽, 위쪽, 아래쪽) 분할에 있는지 감지하고 싶습니다. 즉, 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.

관련 정보