2017-10-02 13 views
1

:E 명령으로 새 파일을 열 때 (ctrl-P 플러그인이 아니라면이 방법이 정상적으로 작동합니다!) Vim과 MacVim (8.0.1098)은 현재 버퍼의 내용을 버립니다 , 따라서 :bn!:bp! 명령을 사용하여 if로 전환하는 것이 불가능 해집니다.파일을 열 때 Vim의 현재 버퍼가 바뀝니다.

그러나 현재 버퍼의 내용을 수정 한 다음 다른 파일을 열고 MacVim을 닫으려고하면 저장되지 않은 파일에 대한 경고 메시지가 나타납니다. 그래서 버퍼가 여전히 어딘가에 매달려 있어야합니까?

또한 창을 분할하고 파일을 열면 두 버퍼가 모두 열린 상태로 유지됩니다.

나는 :bn!:bp! 숨겨진 버퍼를 스크롤하는 작업을해야한다는 것을 의미, 내 .vimrc 실행 :set hidden? 반환 hidden에서 set hidden을 할 수 있지만, 그렇지 않습니다.

답변

0

사실 ctrlP에는 & 스위칭 버퍼가 열리는 문제가 없었으므로 netrw에 문제가있는 것으로 나타났습니다.

자세히 조사한 결과 netrw 플러그인이 유효 기간이 지났다고 판명되었습니다.

(vundle을 통해) v162j로 업그레이드하면 문제가 해결됩니다. 나는`에서 볼 수 있지만

1

:E 명령을 통해 새로운 파일 열기 및 빔 MacVim (8.0.1098) 양쪽이 경우 :bn!:bp!와 명령을 사용하여 전환하는 것이 불가능하게되므로, 현재의 버퍼의 콘텐츠를 버린다.

당신이 설명하는 동작과 일치하지 :

  • 예상되는 동작,
  • 나는 동일한 버전을 얻을 행동.

이 반복 방법으로 그것을 테스트하려면 :

$ vim -Nu NORC a.txt  starts Vim with a.txt 
:Explore     replaces the current buffer with a netrw buffer 
(press <CR> on b.txt) replaces the netrw buffer with b.txt 
:bn (or :bp)    replaces the current buffer with a.txt 

을하지만, 그때, 현재 버퍼의 내용을 수정 다른 파일을 열기 만 다음 MacVim을 닫으려고하면, 내가 경고를 저장되지 않은 파일에 대한 메시지. 그래서 버퍼가 여전히 어딘가에 매달려 있어야합니까?

예, 거의 확실하게 버퍼 목록에 있습니다. 나열된 버퍼의 경우 :ls을 시도하고 모든 버퍼의 경우 :ls!을 시도하십시오. :ls은 # 1에서 a.txt을 표시하고 # 3에서 b.txt을 표시해야하지만 :ls!에는 # 2에서 netrw 버퍼를 더한 값이 표시되어야합니다.

또한 :help 'hidden'을 참조하십시오.

--- 편집 ---

은 참고로 :ls!의 예상 출력 같아야

1  "a.txt"      line 1 
2u#h- "~/"       line 11 
3 %a "~/b.txt"      line 1 

참고 만 "미등록"버퍼는 Netrw 버퍼되어야한다는 : ~/에서 # 2.

$HOME 외부의 어떤 Vim 관련 파일이나 디렉토리로 변경 했습니까?

+0

는 같은 동작을 받고, 그 명령 줄을 시도! LS를': '''1U "a.txt이"라인 1 개 2U 번호의 H- "~ /"29 행 3 % a "~/b.txt"줄 1''' – Art

+0

이 질문이 있음 - https://stackoverflow.com/questions/15945157/avoid-vim-keeping-closed-buffers-open-in-the-background하지만 내 'set hidden?'은'nohidden'을 반환합니다. '숨김'으로 바꾸면 올바른 동작을 반환합니다. 기괴한. – Art

+0

예,'set hidden '은 꽤 의무적입니다. – romainl