"vim 런타임 로그"가 있습니까?


130

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

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

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

답변:


163

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

vim -V9myVim.log

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


나는 Zyx와 당신의 접근 방식을 모두 좋아했지만 cmd에서만 더 간단하기 때문에 당신의 접근 방식이 더 좋으며, 실행할 때마다 로그 경로를 설정할 수 있으며 "팽창시킬 필요가 없습니다. "내 vimrc. 그리고 SO에 오신 것을 환영합니다!
누군가 아직도 당신을 사용합니다. MS-DOS


MacVim-V옵션 또는 명령 행 옵션 을 지원하지 않는 것 같습니다 .
emallove

파일 이름없이 빈 vim 버퍼가 열립니다. 다음은?
Geoff Langenderfer

104

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

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

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

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

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


15

이 함수를 .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. 자세한 표시 수준을 올렸기 때문에 일반적으로 표시되지 않는«변수가 너무 깊게 표시되어»오류가 발생할 수 있습니다.


2

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


2
이 사이트는 해킹 된 것 같습니다. 수정 될 때까지 web.archive.org/web/20090323034339/http://… 에서 캐시 된 버전을 참조하십시오 .
Mu Mind

나는 403 금지했다
프랭크 팡


1

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


일시 중지 버튼에서 폐지를 뺀 것과 비슷한 효과가 없습니까?
Rook

지금까지 나는 멈춤 키가 무엇을했는지 몰랐다. 어쨌든, 나는 그것이 리눅스에서 아무것도하지 않는다고 생각한다 stackoverflow.com/questions/92802/…
puk

2
FWIW, * nix 터미널은 Ctrl-S에서 출력을 일시 중지하고 Ctrl-Q에서 다시 시작합니다.
joeytwiddle

1

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

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