Pythonの開発環境
今日は開発環境について書きます。なんとなくまとめたことがないことに気づいたので。
前提
- プラグインマネージャーは dein.vim を使用しています。
- プラグインのインストールなどは、 toml ファイルで管理しています。このへんの詳細は述べません。
- リポジトリはGitHub - m16Takahiro/neovimfiles at ubuntu-gnomeです。
コード補完
NeoVimユーザーでコード補完をしている人には知名度が高いと思いますが、deoplete.nvim と deoplete-jedi を使用しています。
[[plugins]] repo = 'Shougo/deoplete.nvim' if = 'has("nvim")' on_i = 1 hook_source = ''' let g:deoplete#enable_at_startup = 1 ''' hook_post_source = ''' let g:deoplete#omni_patterns = {} ''' [[plugins]] repo = 'zchee/deoplete-jedi' on_i = 1 on_ft = 'python'
こんな感じで設定をしておくと補完内容が出てきます。
スニペットはGitHub - Shougo/neosnippet.vim: neo-snippet plugin contains neocomplcache snippets sourceを使っています。特にソースの追加などはしていません。
静的解析
非同期でシンタックスチェックができるものを最近導入しました。
保存などのイベントがなくとも勝手に解析されます。まぁまぁ早いです。
pylintでチェックしたくて設定を書いているのですがpep8しか反応してくれていない気がする。。*1
コードフォーマット
Vimのプラグインを介さずとも、Vimからコマンドを呼ぶことでフォーマットしている。フォーマッターはyapfを使用している。
長い行ががっつり改行されたり、コンマのあとのスペースとかかってによしなにしてくれるので楽。~/.config/nvim/init.vim
に、
autocmd FileType python nnoremap <leader>y :0,$!yapf<Cr>
と書くことで
にマッピングしている。
あとはDjangoによるWeb開発をしているのでテンプレートエンジン用のプラグインを入れていたりします。
さいごに
こんだけ書いたけど、ぶっちゃけ最近はVSCodeで開発していることも多い。
NERDTreeとか使って左のカラムにファイルツリー出してみたりもしたんだけど。。
結局マウスでぽちぽち、右クリックでフォーマット、自動でLintかけてくれて自動で補完もよしなにしてくれる、使いたかったらすぐにターミナルも開けるなど、至れり尽くせりなんで。
自分にとってVimを使う理由ってのはもはやVimのキーバインドが使えることくらいかなぁと思い始めていたりします。
*1:そんなに困っていないので放置している。