[vim] “vim 런타임 로그”가 있습니까?

때로는 vimrc에서 사용자 정의 / 명령을 시도합니다. 모든 것이 올바른 것으로 보았지만 작동하지 않습니다.

vim이 시작될 때 무슨 일이 일어나고 있는지, 어떤 명령이 실패했는지 아는 것은 어렵 기 때문에 vimrc에서 문제를 일으킬 수있는 것을 디버그하는 것은 정말 어렵습니다. 시간이 많이 걸리고 실제로는 PITA 인 시행 착오 방식입니다. 예를 들어, 일부 파일에서 snipmate 플러그인에 문제가 있으며 문제를 발견하는 방법에 대한 단서가 없습니다.

vim이 시작될 때 실행 된 명령, 실패한 명령 등을 알려주는 “런타임 로그”가 있습니까? 이것은 나에게 많은 도움이 될 것입니다.



답변

-V [N] 옵션을 사용하여 vim을 실행하면 상당히 많은 런타임 로그가 수행됩니다. 여기서 N은 디버그 레벨입니다.

vim -V9myVim.log

파일 이름으로 현재 디렉토리에 디버그 레벨 9의 로그를 작성합니다. myVim.log


답변

:messages vim 상태 표시 줄에 나타난 모든 경고, 오류 및 정보 메시지를 표시합니다.

:echo errmsg 가장 최근의 오류 메시지를 인쇄합니다.

g<소수의 사람들이 알고있는 또 다른 기능입니다. 보낸 사람 :help g<:

g<명령은 이전 명령 출력의 마지막 페이지를 참조 할 수 있습니다. 이것은 실수로 <Space>적중 입력 프롬프트에 입력 한 경우에 특히 유용 합니다.

예를 들어 :!ls프롬프트를 취소 한 다음를 누르십시오 g<.


답변

이 함수를 .vimrc에 넣으십시오.

function! ToggleVerbose()
    if !&verbose
        set verbosefile=~/.log/vim/verbose.log
        set verbose=15
    else
        set verbose=0
        set verbosefile=
    endif
endfunction

그런 다음 디렉토리를 ~/.log/vim만들고 전화 ToggleVerbose()를 걸어 로그인하십시오 ~/.log/vim/verbose.log. 자세한 표시 수준을 올렸기 때문에 일반적으로 표시되지 않는«변수가 너무 깊게 표시되어»오류가 발생할 수 있습니다.


답변

런타임 로그 자체 는 없다고 생각 하지만 디버그 모드에서 실행할 수 있습니다.
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts


답변

이것은 아마도 SO가 의미하는 모든 것에 위배됩니다. 그러나 내가하는 일은 다음과 같습니다. 경고가 나타나고 그림을 보자 마자 인쇄 화면을 누르십시오.


답변

& verbose 때문에 루트에서 실행될 때 “ToggleVerbose ()”함수를 사용하려면 “set nocp”를 추가해야했습니다.


답변