[vim] Vim에서 세로 분할에서 가로 분할로 빠르게 전환하려면

어떻게 수직 분할 및 그 수평 분할에서 현재 창 빔에 반대 전환 할 수 있습니다?

나는 그 순간 우연히 그 일을했지만 열쇠를 다시 찾을 수는 없습니다.



답변

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

두 개의 세로 분할 창을 가로 분할로 변경하려면

Ctrlw t Ctrlw K

가로에서 세로로 :

Ctrlw t Ctrlw H

설명 :

Ctrlw t 첫 번째 (왼쪽 위) 창을 현재로 만듭니다.

Ctrlw K 맨 위의 현재 창을 전체 너비로 이동

Ctrlw H 왼쪽에서 현재 창을 전체 높이로 이동

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

드롭 수있는 것처럼 또한, 두 개의 창으로 보인다 Ctrlw t당신이 현재 만드는 점은 무엇입니까, 두 개의 창 중 하나에 이미 있다면 때문에 부분을?


답변

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

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


답변

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

(수평으로 전환)

:windo wincmd K

(수직으로 전환)

:windo wincmd H

효과적으로 각 창으로 이동하고 ^WK또는을 사용 ^WH합니다.


답변

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

  • 세로로 나누려면 (예 : 창 사이에 세로 구분선 만들기) :vertical ball
  • 가로로 나누려면 :ball

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


답변

VIM에서 다음을 살펴보고 수행 한 작업에 대한 다른 대안을보십시오.

: 창 열기 도움말

예를 들어 :

CtrlW s
CtrlW o
CtrlW v
CtrlW o
CtrlW s


답변

가로에서 세로로 분할

Ctrl+ W창 명령의 경우 Shift+ H또는 Shift+L


수직에서 수평 분할

Ctrl+ W창 명령의 경우 Shift+ K또는 Shift+J

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


기본적으로 세로 분할에서 도움말 열기

이 두 줄을 다음에 추가하십시오 .vimrc.

cabbrev help vert help
cabbrev h vert h

:vert[ical] {cmd}항상 cmd수직 분할 창에서 실행합니다 .


답변

Steve의 답변에서 영감을 얻어 현재 탭의 모든 창에 대해 세로 및 가로 분할을 전환하는 간단한 기능을 작성했습니다. 아래 마지막 줄에서와 같이 매핑에 바인딩 할 수 있습니다.

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>