Vim 技巧:實時格式化你的代碼
Vim 有很多代碼格式化插件,比如auto-format和neoformat。但它們都需要運(yùn)行某個命令或:w用于觸發(fā)格式化。
是否可以實時查看立即格式化的代碼?如果是這樣,那多方便。
現(xiàn)在好了,有一個小插件vim-rt-format,它可以在按下 ENTER 后立即在 INSERT 模式下格式化當(dāng)前行:
當(dāng)你專注于編輯時,一切都是在不需要額外注意的情況下完成的。無需停止您的工作來運(yùn)行額外的命令,例如gq或:Neoformat。
準(zhǔn)備好試試了嗎?首先,+python3必須在您的 vim 中啟用功能,通過以下方式檢查:
:echo has('python3')
如果您當(dāng)前的 vim 版本支持 python ,它將返回1。如下圖。
如果沒有,請安裝一個具有+python3功能的新 vim ,例如在 ubuntu/debian 中:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install vim-nox
其次,需要一個名為的python模塊autopep8:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo pip install autopep8
然后在您的.vimrc:
" 使用 vim-plug 安裝插件:
Plug 'skywind3000/vim-rt-format'
" 默認(rèn)情況下,它將在插入模式下由“ENTER”觸發(fā)。
" 將此設(shè)置為 1 以使用`CTRL+ENTER`,并保持
" 默認(rèn)的“ENTER”行為不變。
let g:rtf_ctrl_enter = 0
" 離開 INSERT 模式的時候再格式化一次
let g:rtf_on_insert_leave = 1
為當(dāng)前緩沖區(qū)啟用插件:
:RTFormatEnable
一切準(zhǔn)備就緒,重新啟動 vim,編輯一些文件,然后您將度過美好的一天。
順便說一句:目前,它支持的語言包括 Python、Lua、Ruby 和 Javascript。