2010-01-14 2 views
43

나는 내의 .vimrc에 다음과 같습니다자동으로 정력을 종료

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Open NERDTree by default 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
autocmd VimEnter * NERDTree 
autocmd VimEnter * wincmd p 

그래서,

% vim file.txt 

이 NERDTree를 열고 file.txt를 버퍼에 커서를 초점을 맞추고 . 편집을하고 버퍼를 쳤고 왼쪽에 있습니다. . . NERDTree. 이것은 성가신 일입니다.

다음과 같이 사용할 수 있습니다 : qa 모든 버퍼를 닫고 vim을 끝내려면 q 트로프에 익숙합니다.

이 질문 너희가 받아야한다 Q

편집 : "통일"두 개의 버퍼를 유일하게 남아있는 버퍼가 NERDTree 것을 감지하고 수있는 방법의 목적이 있다면 그래서 내가 궁금하네요 https://github.com/scrooloose/nerdtree/issues#issue/21

답변

68

정확하게 수행 할 스크립트가 NERDTree 문제 목록에 게시되었습니다. Nerdtree 용 GitHub의 issue-21을 확인하십시오.

이것은 당신의 vimrc here의 한 줄 명령에 이르게 :

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif 
+0

감사합니다. 그 스크립트는 제가 찾고 있던 스크립트입니다. 수표를 받아야하지만, 아아, 너무 늦었 어. . . 당신은 upvote와 함께해야 할 것이다. – g33kz0r

+0

@ 노아 : 허용 된 답변을 변경할 수 있습니다. – abcd

+0

@yoda 완료되었습니다. – g33kz0r

1

구현을 필요로하는 아이디어 :

당신은 호출시 검사 (혹은 유일한 비 도움말 버퍼, 당신이 선호하는 경우) 유일하게 남아있는 버퍼가 NERDTree 버퍼 인 경우 함수를 작성할 수

및 , 없으면 삭제합니다 (또는 종료).

그런 다음 버퍼가 삭제되거나 숨겨 지거나 실제로 발생할 때마다 자동 실행을 실행하십시오. q (완전히 확신 할 수 없다는 것을 인정합니다!).

+1

그게 http://stackoverflow.com/a/5403847/15690의 기능입니다. – blueyed

+0

좋습니다! 나는 그것이 귀하의 링크가 가리키는 대답이라고 봅니다 - 매우 차갑습니다. (그 대답은 13 개월 후에 타임 스탬프가 찍혔는데, OP가 처음 4 년 반 동안 SO에 질문을 올린 후 17 분을 게시 했으므로이 문제를 다음과 같이 처리 할 것입니다. 역사적 기록의 일부분을 여기에 남겨 둡니다.) –

0

당신은 실제로 q을 원할 때 그것을 잊어 버리기 때문에 :cabbrv q qa라고 말할 수 있습니다.

0

명령 모드에서 두 번의 키 입력으로 모든 버퍼를 닫으려면 cmap bq :bufdo q<CR>을 사용하십시오.

12
function! s:CloseIfOnlyControlWinLeft() 
    if winnr("$") != 1 
    return 
    endif 
    if (exists("t:NERDTreeBufName") && bufwinnr(t:NERDTreeBufName) != -1) 
     \ || &buftype == 'quickfix' 
    q 
    endif 
endfunction 
augroup CloseIfOnlyControlWinLeft 
    au! 
    au BufEnter * call s:CloseIfOnlyControlWinLeft() 
augroup END 

을 내 vimrc에서 janus repo에서 버전을 기반으로.

개선 사항 : 퀵 픽스 창이 남아있는 경우 닫습니다. &bt이 제대로 작동하려면 자동 명령 대신 BufEnter이 필요합니다.

+0

이것은 훌륭하게 작동합니다. –

관련 문제