Кажется, в Vim такого нет (возможно, существует какой-то плагин). Если бы это было так, мы нашли бы его описанным по адресу :help window-moving
.
С другой стороны, вы можете создать собственное отображение, чтобы справиться с этим. Следующее, например, работает так, как вам нужно:
nnoremap <C-W><C-X> :call NextPost()<CR>
let g:mydic = {0: 'K', 1: 'L', 2: 'J', 3: 'H'}
let g:nextPosIndex = -1
function! NextPost()
if g:nextPosIndex == 3
let g:nextPosIndex = 0
else
let g:nextPosIndex += 1
endif
execute "normal! \<C-W>" . g:mydic[g:nextPosIndex]
endfunction
Обратите внимание, что счетчик g:nextPosIndex
никогда не сбрасывается, поэтому после перемещения K
в окне, если вы переместите в другое окно, а затем переместите его, оно будет L
-перемещать. ¹
[1] На основании комментария Д. Бена Кнобля, это ограничение, по-видимому, легко снимается с помощью локальной оконной переменной w:nextPosIndex
вместо глобального g:nextPosIndex
.