もた日記

くだらないことを真面目にやる

Vimメモ : flake8でPythonのコードをチェックする

  • flake8
  • syntasticによりVimでflake8を実行
    • synstasticのインストール
    • synstasticの使い方
    • synstasticの設定
  • vim-flake8によりVimでflake8を実行
  • 追記:ALEで非同期コードチェック

flake8


flake8とは

Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
Pythonのコードチェックツールとしてはflake8が有名らしい。flake8は下記コードチェックツールのラッパーなので、flake8を使用することで広範囲のチェックが可能になる。

続きを読む

Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる

  • vim-python-pep8-indent
  • PEP8とは
  • インストール
  • 使い方
  • vim-indent-guidesで可視化

vim-python-pep8-indent


github.com

vim-python-pep8-indentプラグインを使うとインデントをPEP8に準拠させることができる。

PEP8とは


PEPとはPython Enhancement Proposals(Python拡張提案)の略で、8番目のPEP8でPythonコードのスタイルガイド(インデント、1行の長さ、命名規約など)がまとめられている。

PEP
PEP 0 -- Index of Python Enhancement Proposals (PEPs) | Python.org

PEP8
PEP 8 -- Style Guide for Python Code | Python.org

PEP8日本語訳
はじめに — pep8-ja 1.0 ドキュメント

続きを読む

Vimメモ : Pythonの動的リンクでライブラリがロードできない

wonderwall.hatenablog.com

pyenvでバージョン管理をしている環境でjedi-vimをインストールしたがVimを起動すると下記エラーが表示されて使えなかった。

function jedi#init_python の処理中にエラーが検出されました:
行    7:
Error: jedi-vim failed to initialize Python: jedi-vim requires Vim with support for Python 2 or 3. (in function jedi#init_python[3]..<SNR>109_init_python, 行 52)

下記コマンドの実行結果では+python3/dynとなっている。

$ vim --version | grep python
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore

だが、Vim:echo has('python3')を実行すると1ではなく0が返ってきて、:python3 print("test")を実行すると以下のようにライブラリがロードできないと言われる。

E370: ライブラリ libpython3.5m.so.1.0 をロードできませんでした
E263: このコマンドは無効です,ごめんなさい: Pythonライブラリをロードできませんでした.
続きを読む

Vimメモ : jedi-vimでPythonの入力補完

  • jedi-vim
  • インストール
    • 前提条件
    • インストール方法
  • 基本的な使い方
  • FAQ
    • docstringのポップアップを無効
    • タブキーで補完
    • 補完が遅い
  • デフォルト設定
  • 補完以外の機能
    • 定義へ移動
    • pydoc表示
    • 変数リネーム
    • 使用箇所表示

jedi-vim


github.com

Pythonを使う機会があったのでVimPythonの環境を整えてみる。
補完についてはjedi-vimというプラグインが良さそうなので試してみる。

インストール


前提条件

Vim+pythonコンパイルされている必要があるので下記コマンドで確認。Python3を使うため+python3/dynとなっていればよさそう(dynは動的リンクということらしい)。この状態だとVim:echo has('python3')を実行すると1が返ってくる。

$ vim --version | grep python
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore
続きを読む