2009-06-30 12 views

Antwort

4

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.

4

Python ist am nützlichsten mit vim, wenn es verwendet wird, um vim "Makros" zu codieren (Sie benötigen einen vim kompiliert mit +python, aber viele vorgefertigte kommen auf diese Weise). Here ist eine nette Präsentation über einige der Dinge, die Sie tun können (viele Beispiele und Schnipsel!), Und here sind vim eigene Referenzdokumente über diese Funktion.

+0

@ 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? –

Verwandte Themen