it-swarm.com.ru

Есть ли "vim runtime log"?

Иногда я пытаюсь настроить/команду в моем vimrc. Все кажется правильным, но это не работает.

Трудно понять, что происходит, когда запускается vim, и узнать, какая команда завершилась неудачей или нет, поэтому очень сложно отладить то, что может вызвать проблему в моем vimrc. Это метод проб и ошибок, который требует много времени и действительно является PITA. Например, у меня проблемы с плагином snipmate в некоторых файлах и просто не имею понятия, как обнаружить проблему.

Есть ли "журнал времени выполнения" при запуске vim, сообщающий, какие команды он выполнил, какие не удалось и так далее? Это мне очень поможет.

112

запуск vim с опцией -V [N] создаст довольно здоровенный журнал времени выполнения, здесь N - уровень отладки.

vim -V9myVim.log

создаст журнал уровня отладки 9 в текущем каталоге с именем файла myVim.log

138
sleepynate

:messages показывает все предупреждения, ошибки и информационные сообщения, которые появились (возможно, кратко) в строке состояния vim.

:echo errmsg печатает самое последнее сообщение об ошибке.

g< - еще одна особенность, о которой мало кто знает. От :help g<:

Команда g< может использоваться для просмотра последней страницы предыдущей команды. Это особенно полезно, если вы случайно набрали <Space> в подсказке при нажатии.

Например, попробуйте :!ls, затем отмените запрос, затем нажмите g<.

87
Justin M. Keyes

Поместите эту функцию в .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. Обратите внимание, что вы можете поймать ошибку "вложенная переменная слишком глубоко для отображения", которая обычно не появляется только потому, что вы повысили свой подробный уровень.

13
ZyX

Я не думаю, что есть журнал времени выполнения, как таковой , но вы можете запустить его в режиме отладки.
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts

2
Jay

Мне пришлось добавить "set nocp", чтобы использовать функцию "ToggleVerbose ()" при запуске в корне из-за & verbose

1
masuch

Это, вероятно, идет вразрез со всем, что обозначает SO, но вот что я делаю: я просто нажимаю на экран печати, как только появляется предупреждение, и смотрю на картинку.

0
puk