NERDTree 파일을 열고 탐색기 버퍼를 자동으로 닫는 방법


10

NERDTree 플러그인을 사용할 때 기본 동작은 새 파일을 열고 NERDTree 버퍼를 열린 상태로 유지하는 것입니다. 내가하고 싶은 것은이 기본 동작을 유지하면서 원하는 때 재정의하는 것이므로 파일을 연 후에 NERDTree 버퍼가 닫힙니다.

let NERDTreeQuitOnOpen=1새 파일을 열 때 NERDTree 버퍼를 자동으로 닫는 데 사용할 수 있지만이 옵션은 기본 동작을 완전히 무시합니다 (원하는 것이 아님).

이상적으로는 NERDTree에 원하는 기능을 수행 할 수있는 내장 기능이 있는지 알고 싶습니다. (나는 검색했지만 그와 같은 것을 찾지 못했기 때문에 실제로 존재하지 않는다고 가정합니다)

그리고 그것이 존재하지 않으면 두 가지 아이디어가 있습니다.

  • 첫 번째 설정합니다 함수 만드는 것입니다 NERDTreeQuitOnOpen위해 1, 파일을 열고 다시 설정 NERDTreeQuitOnOpen하는 방법에 대해 0.

  • 두 번째는 다음 매핑을 만드는 것입니다 map d<CR> <CR> :NERDTree <CR> :bd<CR>. 파일을 열고 (first <CR>) NERDTree 버퍼 ( :NERDTree <CR>) 로 돌아가서이 버퍼 ( )를 닫습니다 :bd <CR>. 매핑을 NERDTree 버퍼에만 존재하도록 개선해야하지만 꽤 추악한 솔루션이라고 생각하고 개선 할 수 있습니다.

어떤 아이디어가 가장 좋으며 왜 그럴까요? 아니면 더 나은 옵션이 있습니까?



@ 피터 : 귀하의 의견에 감사드립니다.이 기사는 꽤 흥미 롭습니다. 아마도 netrw와 분할 탐색기의 개념을 시도해 볼 것입니다. 나는 기사에서 설명 된 것의 이점을 이해한다고 생각하지만 문제는 실제로 문제를 해결하지 못하고 사용하는 도구를 변경하는 것이 좋습니다. 나는 습관을 바꾸는 것이 아니라 내 문제를 먼저 해결하고 새로운 도구를 시도하고
싶습니다

SU의 관련 답변되지 않은 질문 : superuser.com/q/821720/334516 . 아마도 map d<cr> <cr>:NERDTreeClose<cr>매핑에 대한 것일까 요?
muru

@muru : 감사합니다. 매핑이 잘 작동하고 내 것보다 덜 추한 것 같습니다. 새 버퍼에서 열고 NERDTree 버퍼를 닫습니다. 분할 창으로 끝나지 만 분할 창이 아닌 2 개의 버퍼로 끝내고 싶습니다.
statox

답변:


5

질문이 많은 답변을 생성하지 않는 것처럼 나는 @rwu의 제안으로 대답합니다 .netrw 탐색기로 전환하기 전에 일주일 동안 사용한 것입니다. (물론 더 나은 옵션 답변이 나오면 기꺼이 승인 된 것으로 표시하고 새 답변을 수락합니다)

아이디어는 다음 매핑을 사용하는 것입니다.

map d<cr> <cr>:NERDTreeClose<cr>

일반적으로 수행되는 파일을 연 다음 커서의 위치에 관계없이 NERDTree 버퍼를 닫는 함수를 호출합니다.

편집 : 최근에 NERDTree로 다시 전환하고 솔루션을 재 작업했습니다. 전에 제안한 매핑이 작동했지만 모든 버퍼에 존재했기 때문에 d꽤 성가신 것을 삭제할 때마다 두 번 눌러야했습니다 . (어쩌면 timeout설정 을 변경할 수 있었지만 현재 설정되어있는 방식이 마음에 들며 다른 키 조합으로 매핑하고 싶지 않았습니다).

그래서 첫 번째 솔루션을 다음 줄로 대체했습니다 .vimrc.

autocmd BufEnter NERD_tree_* nmap  d<CR> <CR> :NERDTreeToggle <CR>
autocmd BufLeave NERD_tree_* unmap d<CR>

이런 식으로 매핑은 NERDTree버퍼 에서만 만들어지며 다른 버퍼의 워크 플로와 혼동되지 않습니다.

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