あなたは、この余分なロジックを含む独自のマッピングであなたの$HOME/.vimrc
のデフォルトのコマンドを上書きする必要があると思います。通常の移動でもウィンドウが変更されない場合(つまり、すでに境界にある場合)、反対側にジャンプします。
"
" Wrap window-move-cursor
"
function! s:GotoNextWindow(direction, count)
let l:prevWinNr = winnr()
execute a:count . 'wincmd' a:direction
return winnr() != l:prevWinNr
endfunction
function! s:JumpWithWrap(direction, opposite)
if ! s:GotoNextWindow(a:direction, v:count1)
call s:GotoNextWindow(a:opposite, 999)
endif
endfunction
nnoremap <silent> <C-w>h :<C-u>call <SID>JumpWithWrap('h', 'l')<CR>
nnoremap <silent> <C-w>j :<C-u>call <SID>JumpWithWrap('j', 'k')<CR>
nnoremap <silent> <C-w>k :<C-u>call <SID>JumpWithWrap('k', 'j')<CR>
nnoremap <silent> <C-w>l :<C-u>call <SID>JumpWithWrap('l', 'h')<CR>
nnoremap <silent> <C-w><Left> :<C-u>call <SID>JumpWithWrap('h', 'l')<CR>
nnoremap <silent> <C-w><Down> :<C-u>call <SID>JumpWithWrap('j', 'k')<CR>
nnoremap <silent> <C-w><Up> :<C-u>call <SID>JumpWithWrap('k', 'j')<CR>
nnoremap <silent> <C-w><Right> :<C-u>call <SID>JumpWithWrap('l', 'h')<CR>
これを達成し、希望するキーコンボにマップするには、コードを書く必要があります。 ':h window-move-cursor'をチェックしてください。そこに移動コマンドがリストされています。 – plesiv
それは私の考えだった。残念ながら私はまだvimスクリプトに精通していません:) – Wes