LoginSignup
19
20

More than 5 years have passed since last update.

写経で使うツール

Last updated at Posted at 2016-10-20

他人のコード理解のために写経をやってみています。うまく行かなかった時には、オリジナルのコードと比較する必要がありますが、その時に以下のツールを使っています。

Reindent

Pythonのインデントを整えなおすツールです。参照元のコード、あるいは自分で書いたコードのインデント基準が異なっていると非常に比較しづらいので、これを使って統一しています。
pip install Rindent で"rindent"コマンドが導入されます。実行は引数に整形対象のファイルを指定するだけです。デフォルトでオリジナルファイルのバックアップを作成します。
インデントの整形はPEP8のスペース4文字に統一されます。インデント以外も含めてPEP8に修正するautopep8というツールもあるようです。

Python3未対応

Reindentはpython3では動きませんでした。

$ reindent
Traceback (most recent call last):
  File "/opt/3gpu/bin/reindent", line 2, in <module>
    from reindent import main
  File "/opt/3gpu/lib/python3.4/site-packages/reindent.py", line 71
    except getopt.error, msg:

全体的に例外の記法がPython2となっています。これに関してはカンマをasに置き換えればよさそうですが、他にprintがすべて括弧なしでの呼び出しになっています。

gvimdiff

比較にはgvimdiffを使っています。他にもmeld等いくつかツールがあるのですが、いくつか試した結果こちらを使っています。ここは個人の好みもあるでしょう。
gvimdiffのデフォルトはnowrapなので、長い行の折り返しがなされません。単純に.vimrcにset nowrapと書いても有効になってくれませんでした。
StackOverflowに(g)vimdiff起動時のみwrapを有効化する方法が掲載されていたので、それを採用しています。

autocmd FilterWritePre * if &diff | setlocal wrap< | endif

jedi (+ emacs, auto-complete)

コード補完にjediを使っています。emacsのauto-completeと組み合わせると、先に読み込んだ写経元のソース内にある長い変数、関数名なども補完が容易になります。

これ以外にも便利なツールがあったら追記してゆきます。

19
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
20