Bagaimana Anda menemukan di mana variabel terakhir kali ditugaskan?

11

Saya mencoba mengatur g:netrw_list_hidedan sepertinya tidak berhasil. Apa pun yang saya atur di .vimrcdalamnya, selalu ada nilainya ,^\.\.\=/\=$. Hanya jika saya sumber vimrcfile saya lagi, maka itu memegang nilai yang benar.

Bagaimana cara saya men-debug ini? Saya kira ada beberapa plugin yang mengatur variabel itu? Mungkin setelah saya vimrcdimuat, jadi saya ingin melihat di mana itu diatur.

Cezar
sumber
2
:vim netrw_list_hide **/*
romainl
3
saat ini tidak benar-benar mungkin selain dari memeriksa sumber secara manual. Saya membuat PR ini yang memungkinkan ini.
Christian Brabandt
Tidak akankah perintah verbal membantu dalam kasus ini?
SibiCoder

Jawaban:

11

Anda dapat mengambil log lengkap dari sesi Vim dengan vim -V20vimlog. Setelah berhenti Vim, periksa (cari, grep) vimlogfile log untuk :let g:netrw_list_hide.

Ingo Karkat
sumber
15

Jika Anda mencari titik terakhir tempat opsi diset (alih-alih variabel), Anda bisa menggunakan :verboseperintah:

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

Tetapi saat ini tidak ada perintah yang setara untuk variabel.

Anda dapat memeriksa kode, atau menggunakan pencarian di sumber, mungkin menggunakan :vimgrep, :vim netrw_list_hide **/*(sebagaimana disebutkan dalam komentar).

Alternatif lain adalah dengan menggunakan 'verbose'opsi untuk menggemakan semua yang dieksekusi setelah Anda mengatur variabel. Karena ini akan menjadi output besar yang digaungkan di layar, Anda perlu menyimpannya (ke dalam register, misalnya):

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

Setelah inisialisasi berakhir, kembalikan verbose ke nilai default dan hentikan pengalihan:

:set vbs&
:redir end

Anda mungkin perlu menekan Ctrl-C beberapa kali, tergantung pada autocmds / plugins yang Anda gunakan.

Kemudian Anda dapat menempelkan isi register menggunakan "bpdan menganalisis " log inisialisasi ".

mMontu
sumber