In Python ist es schwierig, nützliche Einzeiler-Filter zu erstellen. Sie müssen sys
importieren, um stdin
zu bekommen, und schon fangen Sie an, es zu schieben. Das ist nichts Schlechtes an Python. Mein Gefühl ist, dass Python für mehrzeilige Skripte optimiert ist, während die Sprachen, die sich gut für Einzeiler eignen (awk, sed, bash, ich könnte andere nennen, die aber wahrscheinlich geflammt wären), weniger gut funktionieren (IMHO) beim Schreiben von Skripten von erheblicher Komplexität.
Ich mag wirklich Python zum Schreiben mehrzeiliger Skripte, die ich von Vim aufrufen kann. Zum Beispiel habe ich ein Python-Skript bekam, das wird, wenn eine Signatur für einen Java-Konstruktor gegeben, wie folgt aus:
Foo(String name, int size) {
wird eine Menge der vorformulierten emittieren, die in die Schaffung von Wert-Klasse geht:
private final String name;
private final int size;
public String getName() {
return name;
}
public int getSize() {
return size;
}
@Override
public boolean equals(Object that) {
return this == that
|| (that instanceof Foo && equals((Foo) that));
}
public boolean equals(Foo that) {
return Objects.equal(getName(), that.getName())
&& this.getSize() == that.getSize();
}
@Override
public int hashCode() {
return Objects.hashCode(
getName(),
getSize());
}
Foo(String name, int size) {
this.name = Preconditions.checkNotNull(name);
this.size = size;
Ich benutze dies von Vim, indem Sie die Signatur hervorheben und dann !jhelper.py
eingeben.
Ich benutzte auch Python-Skripte, die ich geschrieben hatte, um Zeichen in Zeilen umzukehren und die Zeilen einer Datei umzukehren, bevor ich von rev
und tac
erfuhr.
@ Vielen Dank für die Links! --- MJD sagt, dass nur Lisp Quelltext-Generierung unter http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html gut machen kann. --- @Alex: Welches ist nützlicher Python mit Vim oder Lisp mit Vim? –