最近有機會寫一下 Python 就順便來改造一下 vim

Autocompletion

jedi 這個 library 提供編輯器對 python 程式碼的 autocompletion 跟 goto 的功能

我的 vim 是使用 deoplete 這套 autocompletion 工具,則是使用 deoplete-jedi

安裝

1
$ pip install jedi

vimrc

使用 Plug 或其他 vim 套件管理安裝

1
Plug 'deoplete-plugins/deoplete-jedi', { 'for': 'python' }

截圖:

Formatter & Linter

yapf google 提供的 python code formatter

isort 則是會幫忙整理 import 的順序跟組合

flake8 檢查 python 的 coding style 是否依照 pep8

以上三個工具都可以跟 ale 整合,所以 vim 中只要對 ale 安裝跟設定就好

安裝

1
$ pip install yapf isort flake8

vimrc

ale 的 python linter 預設有 flake8,所以這邊就不多做設定了

1
2
3
4
5
Plug 'dense-analysis/ale'

let g:ale_fixers = {
\   'python': ['yapf', 'isort'],
\ }

截圖:

總結

ale 意外的強大,整合了多數的 Linter 跟 Fixer