창문을 다시 격자 모양으로 되돌리려면 어떻게해야합니까?


12

다음 명령 시퀀스에서와 같이 4 개의 사분면으로 창이 정렬 된 경우 :

  • :tabnew
  • :vsplit
  • :split
  • <C-W>l
  • :split

그런 다음 같은 명령을 입력하면 <C-W>J더 이상 정사각형이되지 않습니다. 이 경우 하나의 창을 맨 아래에 띄웁니다.

어떻게하면 반대 방향으로 즉, 창문을 다시 정사각형 형태로 만들 수 있습니까?

읽었 :help window-moving지만 유용한 것이 보이지 않았습니다.


1
<CW> J를 눌렀을 때 무엇을하려고하는지 불분명합니다. "CW> J를 누르면"화면의 전체 너비를 사용하여 현재 창이 맨 아래로 이동합니다. " 더 이상 정의에 따라 더 이상 그리드 형성에 있지 않습니다. 실제로 창문으로 무엇을하려고합니까?
Rich

3
@Rich OP는 창을 그리드 형성으로 재설정하려는 상황을 예시하고 있다고 생각합니다.
Gonçalo Ribeiro

@ GonçaloRibeiro 맞습니다.
wchargin


답은 아니지만 직접 솔루션을 만들기 위해 코드 예제를 찾고 있다면 멋진 Microviche 프로젝트를 확인하는 것이 좋습니다 .
새로운 Alexandria

답변:


4

내가 아는 한, 열린 분할을 분할 격자로 정렬하는 쉬운 방법은 없습니다. 이 경우 그리드로 돌아가는 가장 쉬운 방법은 구조를 수동으로 수정하는 것입니다.

  1. 상단에 떠있는 분할을 닫습니다
  2. 화면 절반을 차지하는 스플릿으로 돌아 가기
  3. 다시 쪼개 :split <file>

그러면 그리드로 돌아갑니다. 창 레이아웃에 영향을주지 않고 분할을 조작하는 방법 은 현재 창을 [count] 창과 교환하는 [count] Ctrl - 를 사용 W x 하는 것입니다.


나는 이것을 할 수 있다는 것을 알고 있지만 몇 가지 단점이 있습니다. (1) 윈도우가 주어진 버퍼의 유일한보기이고 버퍼가 더러워지면 :wq또는 :q!어느 것이 든 바람직하지 않습니다. (2) 커서 위치와 같은 창 특정 설정이 재설정됩니다. (3) 이것은 진행중인 차이점을 깰 것입니다. 본질적으로 창문은 일류 시민입니다. 그것들을 파괴하고 새로운 것을 만드는 것만으로는 충분하지 않습니다.
wchargin

@WChargin vim이 숨겨진 버퍼를 허용하도록 설정하면 그 중 일부는 사라집니다. 그러나 그래 ...
derobert

2
창을 닫고 버퍼를 원하는 위치로 분할하는 대신 이동하려는 새 창을 분할하고 이동하려는 창과 교환 한 다음 새 창을 닫으십시오.
tommcdo 2019

4

winsaveview명령을 사용하여 원하는 레이아웃을 저장할 수 있습니다 . 여기서는 \sv편의 를 위해 매핑하고 있습니다 .

nnoremap <Leader>sv :let g:myLayout = winsaveview()<CR>

레이아웃을 깨기 전에 반드시 실행하십시오! ;-)

실수로 레이아웃을 깨뜨린 경우 복원 할 수 있습니다.

nnoremap <Leader>rv :call winrestview(g:myLayout)<CR>

4

창을 다시 정렬하는 기본 키는 로컬 분할 그룹 내에서만 작동합니다.

CTRL-W x   Exchange current window with next (in group)
CTRL-W r   Rotate windows down/right (in group)

또는 창을 최상위 그룹으로 나눕니다.

CTRL-W  H | J | K | L   Move window to left/top/bottom/right-most edge

버퍼를 다른 스플릿 그룹 중 하나로 이동하려는 경우에는 적합하지 않습니다.

그러나 그러한 경우에, WindowSwap 플러그인은 도움이 될 수 있습니다 . 임의의 두 창의 임의 버퍼를 교환 할 수 있습니다.

<leader> yw   "Yank window": Yank the current window

<leader> pw   "Paste window": Swap the current window with the yanked window
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.