분할 창을 최대화하려면 어떻게합니까?


110

:helpVim에서 호출하면 분할 창이있는 도움말 매뉴얼 페이지가 있습니다. 도움말 수동 창을 최대화하고 다른 창을 닫고 싶습니다.

어떻게 할 수 있습니까? 이를 수행하는 Vim 명령은 무엇입니까?

답변:


88

: 도움 [화제] 당신이 관심 있음을 주제를 엽니 다.
Ctrl-Wo 는 다른 창을 최소화합니다 (도움말 창만 열림 / 최대화 상태로 유지).
(Ctrl-Wo는 Ctrl 키를 누른 상태에서 W, o를 차례로 누름을 의미)


39
또는, : 만 작업을 수행합니다.
shibly

14
편집 파일에서 CTRL + W o를 수행 한 후 도움말 설명서로 돌아가려면 어떻게해야합니까?
shibly

3
@guru : C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txt등 (에 대한 도움말을 참조 wincmd, switchbuf자세한 내용). 내 (IMHO)이라는 funy 것입니다 올바른 대답은 아직 제공되지 않은 ...
sehe

2
@ldigas : 그것은 (놀라운) 의견입니다. 당신이 평판이 좋은 출처를 인용하지 않는 한, 나는 그것을 당신의 개인적인 취향으로 생각할 것입니다. 나는 보통 그것들을 사용하지 않지만 최근에 이것과 같은 thigns에 사용하고 있음을 발견했습니다 (일시적으로 사이드 버퍼를 최대화; 단일 vim 세션에서 여러 개의 분리 된 병렬 diff를 갖는 것과 같은 강력한 작업을 수행). 탭은 또한 gvim --remote. 나는 se guioptions=agim콘솔과 같은 탭 렌더링을 선호하기 때문에 항상 사용 하고 있습니다.
sehe

23
이렇게하면 다른 창이 닫히고 변경 한 후 저장하지 않은 창이 하나 이상있는 경우 작동하지 않습니다. 또한 질문은 해당 상태에서 잠시 동안 작동하도록 창을 최대화 한 다음 나중에 이전 상태로 돌아 가기-모든 창을 닫으면 세션 파일을 사용하거나 다른 모든 창을 수동으로 열어야합니다
serup

133

당신이 사용할 수있다 Ctrl+WT( 자본이야 그T 자체 탭에 열려있는 모든 창을 이동).

다른 사람들이 언급했듯이 Ctrl+W_/ Ctrl+W|현재 탭 / 창 레이아웃 내에서 최대화합니다 (다양한 다른 창에 대한 최소 높이 / 너비 설정을 유지하면서).

( Ctrl+W=최소 높이 / 너비 설정을 고려하여 모든 창 크기를 동일한 크기로 조정)

댓글 수정

  1. (예를 들면 정력 시작 gvim /tmp/test.cpp)
  2. 도움말 호출 :help various-motions-분할 창을 엽니 다.
  3. 최대화 된 별도의 탭으로 도움말 이동 : C-wT
  4. 훌륭한 매뉴얼을 읽으십시오 :)
  5. 도움말을 원래 탭으로 다시 이동하십시오.

    mAZZ<C-w>S`A
    
    • mA : 글로벌 마크 A 설정
    • ZZ : 도움말 버퍼 / 탭 닫기
    • C-wS : 원래 창 분할
    • `A : 저장된 마크 A로 이동

일반 (비 도움) 버퍼에 대한 표시 사용을 피할 수 있습니다. 관심이 있으시면 알려주세요.


4
CTRL + WT로 탭을 가져온 후 어떻게 원래 분할 된 창으로 돌아갈 수 있습니까?
shibly

2
@guru : 항상 탭을 전환하십시오 ( Ctrl-PgUp, Ctrl-PgDown또는 :tabnext, 사용 :tabprev). 탭을 사용하는 새로운 (예 : 도움)를 닫습니다 ZZ, Ctrl-W, C, :q, :clo, :tabclose또는 다른 방법을 사용하면 일반적으로 가까운 창 / 탭
sehe

1
아니, 그게 문제가 아니야. 두 개의 탭이 있다고 가정하고 이제는 탭이 필요 없으며 두 개의 버퍼를 분할 된 창으로 원합니다. 이 작업을 수행하는 명령이 하나 있습니까?
shibly

일반적인 절차로 질문을 편집합니다. ( 나는 당신의 코멘트의 어조가 다소 비우호적 일 수 있음을 덧붙이고 싶습니다. 서면 언어 "No, that was not the question"로는 견책으로 들릴 수 있습니다. 당신이 그것을 나쁘게 의미하지는 않을 것이라고 확신합니다. )
sehe

@guru : 답변이 업데이트되었습니다. 도움말 버퍼가 특별하기 때문에 예상보다 약간 까다로 웠습니다 ( :sbuf일반적으로 선호하는 것처럼 사용할 수 없습니다 ). 이것이 도움이
되기를 바랍니다

53

Ctrl+W_(밑줄)을 사용하여 창을 최대 크기로 확장 할 수 있습니다 . 확장 된 창의 최종 크기는 winminheight옵션 값에 의해 제한됩니다 . 도움말 창을 닫으면 이전 창은 이전 크기로 복원됩니다.


19
Ctrl+W o 다른 창을 닫으면 사라집니다. 그래서 Ctrl+W _.
Greg Hewgill 2011 년

2
편집 파일과 도움말 설명서를 사용하여 분할 된 원래 두 창을 어떻게 되돌릴 수 있습니까?
shibly

3
Ctrl+W =명령은 창 크기를 조정하여 거의 같은 크기가되도록합니다.
Greg Hewgill 2011 년

14
수직 분할의 경우 Ctrl+W |.
Achal Dave

2
이 스레드에서 일어날 분실 영혼에 ... 분할보기로 다시 얻기 위해 사용 ctrl+w = //이 모든 창을 같은 크기로 만든다
duggi

19

나는 그것을 위해 탭을 사용하는 것을 선호합니다. 사용하다

:tabedit %

새 탭에서 최대화 된 파일을 열려면 모든 창을 사용하여 이전 설정으로 돌아가십시오.

:tabclose

이것은 :cwTagbar 플러그인과 함께 작동하므로 이상적인 솔루션 입니다. 출처 : vim.wikia


13

나는 'M'을 사용하여 최대화하고 'm'을 사용하여 최소화하는 것을 좋아합니다.

동일한 버퍼에있는 다른 모든 열린 창을 축소하므로 멋지게 보이지는 않지만 탭을 다룰 때 더 유용하다는 것을 알았습니다. 예를 들어, 해당 파일에 대한 새 탭을 열고 작업을 마친 후 또는 최소화하려는 경우 닫아야하는 대신.

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

nnoremap의 이유는 재귀 매핑에 신경 쓰지 않지만 map 만 작동해야하기 때문입니다.


1
nnoremap <C-W>M <C-W>\|<C-W>_(뒤에 공백없이) 를 사용하면 |최대화 할 때마다 커서가 1 씩 움직이지 않습니다.
rsanden

1
백 슬래시 ( nnoremap <C-W>\ <C-W>\|<C-W>_)를 사용하는 것이 좋습니다. 이 기본 바인딩과 자연의 느낌 |, _그리고 =.
rsanden

6

다른 창을 닫거나 크기를 조정하지 않고도 도움말 창을 전체 크기로 볼 수 있습니다.

tab help {topic}

이렇게하면 새 탭에서 도움말 창이 열리고 다른 창은 그대로 유지됩니다 (탭 라인을 표시 할 수 있도록 크기가 조정되었지만 위의 추가 행은 하나뿐입니다). 당신은 평소와 같이 도움을 닫을 수 있습니다 : 적어도 :bw<CR><C-w>c나를 위해 일뿐만 아니라 새 탭을 닫는.




2

도움말을 확인한 다음 다른 창을 닫으려면 다음과 같이하십시오 :helpCTRL-WCTRL-W:close.. 그러면 도움을받을 수 있습니다.


1

.vimrc에

nmap - :res<CR>:vertical res<CR>$

현재 창을 최대화하려면 명령 모드에서-를 누르십시오. 여러 창의 마지막 상태를 복원하려면 =를 누릅니다.


2
좋지만 = '마지막 상태'를 복원하지 않습니다.
majkinetor

1

어떻게 든 ZoomWin 플러그인이 전혀 작동하지 않았습니다. 이제 다른 플러그인이 있음을 알 수 있지만 이미 이것을 작성하고 원하는 정확한 효과를 제공합니다 (아래에 자세히 설명되어 있음) .

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

매핑 된 키 (제 경우에는 리더 및 +)를 사용하여 최대화 / 이전 레이아웃간에 전환합니다. 같은 탭에서 다른 분할로 변경하면 최대화가 꺼집니다.

탭을 변경하면 분할이 최대화 된 상태로 유지되지만, 너비가 최소화 된 창은 약 4 개의 열 또는 그 이상을 되찾아 더 이상 전체 너비를 덮지 않습니다. 어쨌든 그것은 그 사소한 특성에도 불구하고 나를 위해 받아 들일 수 있습니다.

편집 : 어떻게 든 지금은 잘 작동하며 이전에 어떤 방식 으로든 엉망이 된 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.