Как вы находите, где переменная была назначена в последний раз?


12

Я пытаюсь установить, g:netrw_list_hideи это не похоже на работу. Независимо от того, что я установил в моем, .vimrcэто всегда имеет значение ,^\.\.\=/\=$. Только если я vimrcснова получу исходный файл, он будет иметь правильное значение.

Как мне отладить это? Я думаю, есть какой-то плагин, который устанавливает эту переменную? Возможно, после того, как мой vimrcзагрузится, поэтому я хочу посмотреть, где он установлен.


2
:vim netrw_list_hide **/*
Ромен

3
в настоящее время не представляется возможным, кроме проверки источника вручную. Я создал этот пиар, который позволил бы это.
Кристиан Брабандт

Разве многословная команда не поможет в этом случае?
SibiCoder

Ответы:


11

Вы можете записать полный журнал сеанса Vim с vim -V20vimlog. После выхода из Vim просмотрите (ищите grep) vimlogфайл журнала :let g:netrw_list_hide.


16

Если вы искали последнюю точку, где была установлена ​​опция (вместо переменной), вы можете использовать :verboseкоманду:

:4verbose set is?
  incsearch
        Last set from ~/.vim/vimrc

Но в настоящее время нет эквивалентной команды для переменных.

Вы можете проверить код, или использовать поиск в источнике, возможно , с использованием :vimgrep, :vim netrw_list_hide **/*(как указано в комментариях).

Другой альтернативой является использование 'verbose'опции для отображения всего, что выполняется после установки переменной. Поскольку это будет большой вывод, отображаемый на экране, вам необходимо сохранить его (например, в регистр):

" in your .vimrc, after you set the variable
redir @b
set verbose=15

После завершения инициализации восстановите подробное значение по умолчанию и остановите перенаправление:

:set vbs&
:redir end

Возможно, вам придется несколько раз нажать Ctrl-C, в зависимости от того, какие autocmds / плагины вы используете.

Затем вы можете вставить содержимое регистра с помощью "bpи проанализировать « журнал инициализации ».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.