Vim で Python を記述するためのベスト プラクティス

高洛峰
リリース: 2017-02-09 10:56:11
オリジナル
1609 人が閲覧しました

最初に写真を投稿しましょう:

用 Vim 写 Python 的最佳实践

一部の小規模な Python プロジェクトでは、vim を使用するのが良い選択です。この記事の内容は、Zhihu での私の回答をまとめたものです。Vim で Python を書くためのベスト プラクティスは何ですか? 、以下の内容は Zhihu の古い回答の補足であり、特に主に vim8 に焦点を当てたものです。さらに内容が必要な場合は、この質問に対する Zhihu の回答の一部を確認してください。

構文チェック

vim8 を使用している場合は、構文の代わりに非同期検出 w0rp/ale を使用できます。もうフライチェックを羨望する必要はなく、構文チェックのために行き詰まる必要もありません。

エールのこの部分のカスタマイズ設定に関しては、実はちょっと「こだわり」があるのですが、基本的にはデフォルトで十分なのですが、派手なものが好きなので試してみました。関連する内容は非常に詳細である場合があります。一般的な構成を理解するには、space-vim: syntax-checking を直接参照してください。主な目的は、ale が提供する statusline コンテンツを再抽出して表示することです。構文エラーがない場合はステータスラインに表示されませんが、警告やエラーがある場合は色で区別できます。

用 Vim 写 Python 的最佳实践

側面の警告やエラーの標識については、私はもっときれいにしたいので、前景色を使って区別するだけですが、時々斑点のように見えて、見た目が良くありません。

用 Vim 写 Python 的最佳实践

用 Vim 写 Python 的最佳实践

構文の強化

Python 用の vim の組み込みの強調表示は少し弱く、self でさえ点灯しません。これは python-mode/python-mode:

    hi pythonSelf            ctermfg=174 guifg=#6094DB cterm=bold gui=bold
ログイン後にコピー

を通じて強化できます。詳細については、space-vim: python レイヤーを参照してください

python-mode の syntax/python.vim では、vim 付属の syntax/python.vim よりも詳細なハイライトグループを確認できます。それぞれの内容を理解したら、カラーテーブルに従ってハイライトスタイルを変更するだけです。これは、端末 256 の色比較チャートです。 256 端末の色とその 24 ビット相当物 (または同様のもの) です。これは、GUI の色比較チャートです。 完全な HTML True Color チャートです。

これの利点は、必要な効果を完全にカスタマイズできることですが、すべての vim テーマに適しているわけではないため、欠点もあります。テーマを切り替えると、これらの Python でカスタマイズされたハイライトが少し合わなくなる可能性があります。人気のある vim テーマだけを数えても、おそらく 2 桁あります。いくつかは寒色系で、あるものは青で、あるものは主に赤です。汎用性の高い色を見つけるのは簡単ではありません。ただし、誰もが好むテーマは少数である可能性があるので、自分で選択してください...

実際、python-mode は、vim を使用して Python を記述するための多くの機能を含むちょっとしたコレクションです。興味がある方は、 「一手で世界征服」を試してみましょう。ただし、今のところ私が気に入っているのはこの部分だけです。

コードのフォーマット

これは、google/yapf を介して行うことができます。yapf をインストールした後、次の <LocalLeader>= のように、現在のファイルをフォーマットできます: <LocalLeader>= 就能对当前文件进行格式化:

autocmd FileType python nnoremap <LocalLeader>= :0,$!yapf<CR>
ログイン後にコピー

自动补全

这一点因为我主要还是使用 vim, 因此用的 YouCompleteMe, 实际后端用的是已经提到的 jedi-vim. 如果不喜欢 ycmd, 使用 neovim 的可以尝试使用 deoplete.nvim .

import 整理

各种 import 是不是显得有点乱?使用 timothycrosley/isort 整理一下吧:

autocmd FileType python nnoremap <LocalLeader>i :!isort %<CR><CR>
ログイン後にコピー

一键运行

这个可以通过 skywind3000/asyncrun.vim 来增强, 把之前的 ! 换成 AsyncRun! 就好了. 其实还是有些小小的注意点:

很多人的一键运行可能大概长这样:

...
exec "!g++ % -o %<"
exec "!time ./%<"
...
ログイン後にコピー

可以直接把上面的 ! 换成 AsyncRun!

exec "AsyncRun! g++ -stdc++11 % -o %<; time ./%<"
ログイン後にコピー

Auto-complement私は主に vim を使用するので、実際のバックエンドは前述の jedi-vim であり、neovim を使用する場合は、deoplete.nvim を試してください。さまざまなインポートが可能です。少し混乱していますか? timothycrosley/isort を使用して整理します:

rrreee

ワンクリック操作

🎜これは skywind3000/asyncrun.vim を通じて強化できます。前の !AsyncRun! に置き換えます。実際には、注意すべき小さな点がまだいくつかあります: 🎜🎜 多くの人のワンクリック実行は次のようになります: 🎜rrreee🎜 上記の !AsyncRun!?答えはノーです。前の効果を実現したい場合は、次のようにする必要があります: 🎜rrreee🎜 複数のコマンドをリンクするにはセミコロンを使用するか (Linux)、複数のコマンドをリンクするには & を使用します (Windows)。 🎜🎜具体的で完全な vim 構成はここにあります: >>> space-vim (この文章が良いと思われる場合は、github にアクセスしてスターを付けることができます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート