your programing

Vim에서 수직 분할에서 수평 분할로 빠르게 전환하려면

lovepro 2020. 10. 3. 11:24
반응형

Vim에서 수직 분할에서 수평 분할로 빠르게 전환하려면


Vim에서 현재 창을 수평 분할에서 수직 분할로 또는 그 반대로 전환하려면 어떻게해야합니까?

잠시 전에 실수로했는데 다시 열쇠를 찾을 수 없습니다.


Vim 메일 링리스트다음과 같이 말합니다 (가독성을 높이기 위해 다시 포맷 됨).

두 개의 수직 분할 창을 수평 분할로 변경하려면

Ctrl- w t Ctrl-w K

가로에서 세로로 :

Ctrl- w t Ctrl-w H

설명 :

Ctrl- w t첫 번째 (왼쪽 위) 창을 현재 창으로 만듭니다.

Ctrl- w K현재 창을 맨 위에있는 전체 너비로 이동

Ctrl- w H현재 창을 맨 왼쪽에서 전체 높이로 이동합니다.

t는 소문자이고 K와 H는 대문자입니다.

또한 두 개의 창만 있으면 Ctrl- w t부분을 삭제할 수있는 것 같습니다. 이미 두 개의 창 중 하나에있는 경우 현재로 만드는 요점이 무엇인가요?


Ctrl- w다음 H, J, K또는 L(자본) 맨에 현재 창을 이동 left, bottom, top또는 right각각 같은 일반 커서 탐색.

소문자는 창을 이동하는 대신 포커스를 이동합니다.


개 이상의 창이 가로 또는 세로로 열려 있고 모두 다른 방향 으로 전환하려는 경우 다음을 사용할 수 있습니다.

(수평으로 전환)

:windo wincmd K

(수직으로 전환)

:windo wincmd H

효과적으로 각 창으로 개별적으로 이동하고 ^WK또는 ^WH.


다음 ex 명령은 여러 창을 (재) 분할합니다.

  • 세로로 분할하려면 (예 : 창 사이에 세로 구분선 만들기) 다음을 입력합니다. :vertical ball
  • 가로로 분할하려면 :ball

숨겨진 버퍼가있는 경우 이러한 명령을 실행하면 숨겨진 버퍼도 표시됩니다.


VIM에서 다음을 살펴보고 수행했을 수있는 다른 대안을 확인하십시오.

: 창 열기 도움말

예를 들면 :

Ctrl- W s
Ctrl- W o
Ctrl- W v
Ctrl- W o
Ctrl- W s
...


수평에서 수직으로 분할

Ctrl+ ( W윈도우 명령) 다음에 Shift+ H또는 Shift+L


수직에서 수평으로 분할

Ctrl+ ( W윈도우 명령) 다음에 Shift+ K또는 Shift+J

두 개의 창이 존재하는 경우 두 솔루션 모두 적용됩니다.


의 Mark Rushakoff의 팁에 따라 다음 은 내 매핑입니다.

" vertical to horizontal ( | -> -- )
noremap <c-w>-  <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\|  <c-w>t<c-w>H
noremap <c-w>\  <c-w>t<c-w>H
noremap <c-w>/  <c-w>t<c-w>H

Edit: use Ctrl-w r to swap two windows if they are not in the good order.


Inspired by Steve answer, I wrote simple function that toggles between vertical and horizontal splits for all windows in current tab. You can bind it to mapping like in the last line below.

function! ToggleWindowHorizontalVerticalSplit()
  if !exists('t:splitType')
    let t:splitType = 'vertical'
  endif

  if t:splitType == 'vertical' " is vertical switch to horizontal
    windo wincmd K
    let t:splitType = 'horizontal'

  else " is horizontal switch to vertical
    windo wincmd H
    let t:splitType = 'vertical'
  endif
endfunction

nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>

참고URL : https://stackoverflow.com/questions/1269603/to-switch-from-vertical-split-to-horizontal-split-fast-in-vim

반응형