2013-09-27 1 views
0

다시 시작하지 않고 .vimrc을 다시로드하고 싶습니다. vim; 확실한 대답은 :source $MYVIMRC이지만, 새 기능 기능/키맵을 스크립팅 한 경우에만 작동하며 이 (가)으로 삭제되면 작동하지 않습니다. 예를 들어 :지도/기능 삭제 후 .vimrc 소스

이제
" empty .vimrc 
" to which I've added L() 

function! Temp() 
    echo "ABC" 
endfunc 

:w | so ~/.vimrc 

, :call Temp()는 "ABC"예상대로 얻을 것입니다.

" now, I've deleted Temp() 
:w | so ~/.vimrc 

... 및 :call Temp()은 여전히 ​​"ABC"를 생성합니다. 그러나 .vimrc를 종료했다가 다시 열면 메모리에서 함수가 완전히 제거됩니다. :source으로 그 행동을 달성 할 수 있습니까?

당신은 당신의 .vimrc에 대한 기능/명령/매핑 정의를 구문 분석 정의 :Reload 명령을 쓸 필요가
+0

사용 사례에 대해 궁금합니다. 이것에 의해 영향을받습니다. – Jean

+0

@Jean, 설득력있는 예제는 생각할 수 없지만, 제거되지 않은 키맵과 관련된 일종의 문제가 궁극적으로 발생한다고 가정했습니다. 어쨌든 다른 곳의 질문에 대한 답을 찾을 수 없었고 (호기심에서) 물어볼 것이라고 생각했습니다. 아마도 다른 사람도이 점을 유용하게 생각할 것입니다. – sevko

답변

3

:delfunction/:delcommand/:unmap 그들이야. 이것은 상당한 노력으로 모든 경우를 포착하지는 못합니다. 그리고 Vim의 재시동을 피하기위한 모든 것!

정말 필요한지 (어떤 이유인지 상상할 수 없음) 힘든 생각을하십시오. 우리는 몇 초에 대해 얘기하고 있습니다. 시작 시간, 최대. 파일 등을 다시 열어야하는 걱정이 있다면 내장 된 :mksession을 사용하면됩니다.하지만 세션 자체에서 계속주의해야합니다.

+0

이것은 당신이 개발 한 플러그인을 신속하게 테스트 할 때 매우 유용합니다 : 스크립트를 작성하지 않고 플러그인이 런타임에 손으로 사용하는 몇 가지 변경 사항 (예 : 구성 변수/구문/함수/... 정의)을 수행 한 경우 플러그인을 다시로드하는 것이 더 쉽습니다 이 변경 사항을 다시 실행하십시오. 그리고 이것은 "정의 및 등록"또는 "특별한 방법으로 정의"접근법 (재로드가 두 접근법을 모두 사용할 수있는 frawor)을 사용하는 대신 무의미한 구문 분석을 잊어 버린 경우 훨씬 더 쉽습니다. – ZyX

+0

@ ZyX : 개발 중에 플러그인을 다시로드하는 것이 합리적이라고 동의합니다. 내 [ReloadScript plugin] (http://www.vim.org/scripts/script.php?script_id=1904)을 사용합니다. 그러나 거기에서도, 사용하지 않는 함수 나 매핑은별로 신경 쓰지 않으며 드문 경우지만 다시 시작합니다. –

+0

단지 리소스 스크립트 만 있으면 마음대로 종속성을 추적하고 올바른 순서로 다시로드해야합니다. 많은 수의 파일로 구성된 플러그인에는 허용되지 않습니다. frawor 작성의 의도는 다음과 같습니다. "복잡한 플러그인의 경우 올바른 다시로드가 필요합니다."+ "재로드를위한 지원 추가는"⇒ "가능한 한 많은 기능이 익명 일 수 있어야합니다. API 함수는 종속성으로 정의 된 파일을 지정한 후에 만 ​​사용할 수 있어야합니다. frawor는 funcrefs를 복사 할 책임이 있습니다. " – ZyX