在使用vim的過程中可能會遇到一些報錯或其他不符合預期的情況,本文介紹一些我自己常用的定位有問題腳本/插件的方法(以下方法同樣適用于neovim)
執行了某些命令的情況
這種情況最簡單,使用:h 命令
,如果插件有文檔的話,可以很快的找到對應插件。
使用了快捷鍵的情況
使用:verbose nmap/imap 快捷鍵
來查看最后一次設置該快捷鍵的腳本, 這在解決快捷鍵沖突的情況很有用。具體使用nmap還是imap需要根據使用快捷鍵時的模式來確定。
其他情況
有時候僅看問題的觸發條件不能很好的確定問題所在,這種情況下采用先穩定復現,再逐步縮小范圍的方法來排查。以我曾經遇到的一個問題為例,當時是在vue文件下,進入可視模式,選中一段文本后復制,跳轉到目標位置后粘貼,發現粘貼的內容不是原來復制的文本,執行:reg
后,發現匿名寄存器的內容被莫名其妙的修改了,因為這個問題我只在vue文件中發現過,所以懷疑這和某個vue相關的腳本有關,而這樣的腳本我有不只一個。vim有個命令叫:scriptnames
,可以列出當前加載的所有腳本,執行后大概有177個,排查起來比較繁瑣,好在把vue文件后綴刪掉后重新打開,問題就不在了,重新設置文件類型:set ft=vue
問題再次出現,對比設置前后加載的腳本,相同的部分大概有157個,這部分就可以排除了,問題有很大可能就出在剩下的20個腳本中,這些腳本大概有三種來源,一種是自己寫的,一種插件的,還有就是vim自帶的,出問題的概率從左到右依次遞減,重點關注前兩種,注掉你覺得比較可疑的,或者使用二分法,每次注掉一半,不用幾次就能找到了。