2008-12-01 4 views
1

내 사용 시나리오가 조금 이상하게 보일지 모르지만 여기에 있습니다 : vim (정기적으로 사용하는 약 4 명의 다른 편집자 중 한 명)을 사용할 때 두 가지 상황에서 사용합니다. 첫 번째는 GUI를 통해 여러 버퍼를 가지며 명령 줄에서 사용할 때와 다른 설정을 사용합니다 ("if has('gui_running')"테스트). 다른 하나는 작은 변화를 도트 파일 또는 다른 유형의 구성으로 만드는 것과 같이 명령 줄에서 짧고 빠른 것을해야 할 때입니다.GUI 만 사용하여 vim 세션을 사용 하시겠습니까?

무엇을 과 같이 할 것인가는과 비슷하지만 GUI에 세션이 활성화되어 있지만 명령 줄 호출이 무시됩니다. 즉, CL 호출에 대한 전체 기존 세션을 가져오고 싶지 않으며 GUI가 사용하는 세션을 변경하기 위해 원하는 모든 버퍼/파일을 원하지 않아도됩니다. vim의 post-vi 기능에 대해 상당히 새롭기 때문에이 문제를 해결하는 방법을 잘 모르겠습니다.

답변

5

.gvimrc에있는 세션 마법과 .vimrc에있는 다른 모든 것들을 수행하십시오. GUI는 두 가지 모두를 제공하지만 CL 버전은 .vimrc만을 제공합니다.

세션 마술은 종료시 파일에 세션을 기록하고 입구에 파일을 소싱하여 다시로드하도록 자동 명령을 설정하는 것입니다.

au VimLeave * mksession ~/.gvimsession 
au VimEnter * source ~/.gvimsession 
+0

사용하는 .gvimrc를 만들 필요가 없지만 트릭이 있습니다. 내 .vimrc의 GUI 전용 블록 내에서 정상적으로 작동합니다. – rjray

2

! mksession을 사용하면 매번 종료 할 때 대체 오류 메시지가 표시되지 않습니다.

au VimLeave * mksession! ~/.gvimsession 
au VimEnter * source ~/.gvimsession 
관련 문제