Vim開啟很慢,怎麼找出最慢的外掛?怎麼解決?
很久很久以前,YouCompleteMe還只是一般般的卡,現在,YCM(簡稱,後同)簡直是巨卡,巨卡。仔細分析一下自己用Vim的地方:
- 寫部落格
- 寫程式碼
- 編輯一些臨時檔案
那其實就很明顯了,只有在寫程式碼的時候才會用上YCM,而且只有Go和Python的時候用得上。得益於vim-plug
的強大功能,支援
惰性載入。於是我就改成了這樣:
Plug 'Shougo/neco-syntax' Plug 'hynek/vim-python-pep8-indent', { 'for': 'python' } Plug 'itchyny/vim-haskell-indent', { 'for': 'haskell' } Plug 'stephpy/vim-yaml', { 'for': 'yaml' } Plug 'uber/prototool', { 'rtp':'vim/prototool', 'for': 'proto' } Plug 'Valloric/YouCompleteMe', { 'for': ['python', 'go'] } Plug 'plasticboy/vim-markdown' | Plug 'godlygeek/tabular', { 'for': 'markdown' } Plug 'vim-jp/vim-go-extra', { 'for': 'go' }
這樣,這些外掛就只有在對應的 filetype 被開啟的時候才會載入。
下面分享一些找出最慢的外掛的方式:
vim --startuptime
$ vim --startuptime vim.log
會記錄下每一步,所花費的時間。Neovim也支援這個選項。
二分查詢
每次註釋一半的外掛,用log(N)
的次數就可以找出來誰最慢啦!