Ich versuche, das Sutra zu kopieren, um den Code anderer zu verstehen. Wenn das nicht funktioniert, müssen Sie es mit dem Originalcode vergleichen, und dann verwende ich die folgenden Tools:
Reindent
Ein Tool zum Neuausrichten von Python-Einrückungen. Es ist sehr schwierig zu vergleichen, ob der Referenzquellcode oder der Einrückungsstandard des von Ihnen geschriebenen Codes unterschiedlich ist. Daher verwenden wir diesen zur Vereinheitlichung. pip install Rindent führt den Befehl "rindent" ein. Geben Sie zum Ausführen einfach die zu formatierende Datei im Argument an. Erstellt standardmäßig eine Sicherung der Originaldatei. Die Formatierung des Einzugs wird mit 4 Leerzeichen auf PEP8 vereinheitlicht. Es scheint ein Tool namens autopep8 zu geben, das auf PEP8 geändert wird, einschließlich nicht eingerückt.
Reindent hat in Python3 nicht funktioniert.
$ 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:
Insgesamt lautet die Ausnahmeschreibweise Python2. Es wäre schön, das Komma durch dieses zu ersetzen, aber alle anderen Ausdrucke sind Aufrufe ohne Klammern.
gvimdiff
Ich benutze gvimdiff zum Vergleich. Es gibt einige andere Tools wie meld, aber als Ergebnis einiger Versuche verwende ich dieses. Hier wird es auch einen persönlichen Geschmack geben. Die Standardeinstellung für gvimdiff ist nowrap, sodass lange Zeilen nicht umbrochen werden. Das einfache Schreiben von set nowrap in .vimrc hat nicht funktioniert. StackOverflow hat eine Methode veröffentlicht, mit der Wrap nur aktiviert wird, wenn (g) vimdiff gestartet wird. Daher verwende ich sie.
autocmd FilterWritePre * if &diff | setlocal wrap< | endif
jedi (+ emacs, auto-complete)
Ich benutze jedi für die Code-Vervollständigung. In Kombination mit der automatischen Vervollständigung von Emacs ist es einfach, lange Variablen, Funktionsnamen usw. in der Quelle der zuvor gelesenen Quelle zu vervollständigen.
Wenn es andere nützliche Werkzeuge gibt, werde ich sie hinzufügen.