Как изменить положение окна в vim - PullRequest
2 голосов
/ 19 апреля 2020

Для перемещения окна я могу сделать:

ctrl w shift H, J, K или L

Есть ли способ просто переключить положение windows? Например, нажатие на нее пять раз может сделать:

  • ctrl w shift K
  • ctrl w shift L
  • ctrl w смещение J
  • ctrl w смещение H
  • ctrl w shift K

Есть ли что-то подобное в vim, или я должен указать направление явно при изменении положения окна?

1 Ответ

1 голос
/ 19 апреля 2020

Кажется, в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...