用ALE替換了Syntastic
習慣頻繁地儲存原始碼,但是每次儲存都有明顯的卡頓,於是用Vim自己的調優功能跟蹤了一下。
依次執行以下命令:
:profile start profile.log :profile file * :profile func *
然後執行儲存操作,再執行以下命令:
:profile pause :noautocmd qall!
在當前目錄下生成的檔案profile.log裡,看到執行時間最長的是Syntastic的函式,禁用這個擴充套件後儲存果然比原來快多了。
但是Syntastic是個很有用的擴充套件,所以Google一下有沒有非同步執行的方法,偶然發現了ALE,主要特性就是非同步執行。試用之後覺得很好用,就把前者卸了。
ALE的初始配置如下:
" ALE let g:ale_sign_column_always = 1 let g:ale_set_highlights = 0 let g:airline#extensions#ale#enabled = 1 "自定義error和warning圖示 let g:ale_sign_error = '✗' let g:ale_sign_warning = '⚠' " 顯示Linter名稱,出錯或警告等相關資訊 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' " PHP let g:ale_php_phpcs_standard = 'PSR2' let g:ale_php_phpmd_ruleset = '~/.phpmd.xml' " 普通模式下,sp前往上一個錯誤或警告,sn前往下一個錯誤或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) " 觸發/關閉語法檢查 nmap <Leader>at :ALEToggle<CR> " 檢視錯誤或警告的詳細資訊 nmap <Leader>ad :ALEDetail<CR>