Чи існує "журнал виконання програми vim"?


130

Іноді я намагаюся налаштувати / командувати у своєму vimrc. Все здається правильним, але це просто не працює.

Важко знати, що відбувається, коли запускається vim, і знати, яка команда не вдалася чи ні, тому насправді важко налагодити те, що може спричинити проблему в моєму vimrc. Це пробно-помилковий підхід, який займає багато часу і справді ПДФА. Наприклад, у мене є проблеми з плагіном snipmate в деяких файлах, і я просто не маю уявлення про те, як виявити проблему.

Чи існує "журнал виконання", коли запускається vim, підказуючи, які команди він виконував, які - невдалі та такі? Це мені б дуже допомогло.

Відповіді:


163

запущений vim з опцією -V [N] буде робити досить здоровий журнал виконання, тут N - рівень налагодження.

vim -V9myVim.log

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


Мені сподобалися обидва підходи від Zyx і вас, але на мій погляд, ваш підхід кращий, оскільки він простіший, лише в cmd, і я можу встановлювати шлях до журналу кожного разу, коли запускаю його, і мені не потрібно "надувати "мій vimrc. І ласкаво просимо до SO!
Хтось досі використовує вас MS-DOS

2
Дивіться також :h 'verbose'і :h :verbose.
Палець

Здається, MacVim не підтримує -Vпараметр або будь-який варіант командного рядка.
emallove

це відкриє порожній буфер vim без імені файлу. Що далі?
Джефф Лангенферфер

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, але ось що я роблю: я просто натискаю на екран друку, як тільки з’являється попередження, і дивлюсь на картинку.


Чи не буде кнопка паузи мати подібний ефект, за вирахуванням витраченого паперу?
Грак

До цього часу я ніколи не знав, що робить ключ паузи. У будь-якому випадку, я не думаю , що це нічого не робить в Linux stackoverflow.com/questions/92802 / ...
PUK

2
FWIW, * nix-термінали призупинять вихід на Ctrl-S і відновляться на Ctrl-Q.
joeytwiddle

1

Мені довелося додати "set nocp", щоб використовувати функцію "ToggleVerbose ()" при запуску в root через & verbose

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.