Help us understand the problem. What is going on with this article?

写経で使うツール

More than 3 years have passed since last update.

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

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と組み合わせると、先に読み込んだ写経元のソース内にある長い変数、関数名なども補完が容易になります。

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

knok
Debian Projectに参加しています。
http://blog.daionet.gr.jp/knok/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした