Jak znaleźć miejsce, w którym zmienna została ostatnio przypisana?

12

Próbuję ustawić g:netrw_list_hidei to nie działa. Bez względu na to, co w nim ustawiłem .vimrc, zawsze ma wartość ,^\.\.\=/\=$. Tylko jeśli vimrcponownie źródła mój plik, to ma on prawidłową wartość.

Jak to debugować? Myślę, że jest jakiś plugin, który ustawia tę zmienną? Prawdopodobnie po vimrczaładowaniu, więc chcę zobaczyć, gdzie jest ustawiony.

Cezar
źródło
2
:vim netrw_list_hide **/*
romainl
3
obecnie nie jest to możliwe poza ręcznym sprawdzaniem źródła. Stworzyłem ten PR, który na to pozwoli.
Christian Brabandt,
Czy pełne polecenia nie pomogą w tym przypadku?
SibiCoder,

Odpowiedzi:

11

Możesz przechwycić pełny dziennik sesji Vima vim -V20vimlog. Po wyjściu z Vima sprawdź (przeszukaj grep) vimlogplik dziennika :let g:netrw_list_hide.

Ingo Karkat
źródło
16

Jeśli szukałeś ostatniego punktu, w którym ustawiono opcję (zamiast zmiennej), możesz użyć :verbosepolecenia:

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

Ale obecnie nie ma równoważnego polecenia dla zmiennych.

Można sprawdzić kod lub użyć wyszukiwania w źródle, ewentualnie stosując :vimgrep, :vim netrw_list_hide **/*(jak wspomniano w komentarzach).

Inną alternatywą jest użycie 'verbose'opcji, aby wywołać echo wszystkiego, co jest wykonywane po ustawieniu zmiennej. Ponieważ będzie to efekt dużego echa na ekranie, musisz go zapisać (na przykład w rejestrze):

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

Po zakończeniu inicjalizacji przywróć pełną wartość domyślną i zatrzymaj przekierowanie:

:set vbs&
:redir end

Być może będziesz musiał nacisnąć Ctrl-C kilka razy, w zależności od używanych autocmds / wtyczek.

Następnie możesz wkleić zawartość rejestru za pomocą "bpi przeanalizować „ dziennik inicjalizacji ”.

mMontu
źródło