私は一番右(または左、上、下)の分割にあるかどうかを検出したいと思います。つまり、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
。