2009-06-30 82 views

回答

4

在Python中很难制作有用的单线过滤器。您需要导入sys才能获得stdin,并且您已经开始推动它。这并不是说Python的坏处。我的感觉是,Python对多线脚本进行了优化,而在单线程中表现良好的语言(awk,sed,bash,我可以命名其他语言,但很可能会被烧焦......)的工作效果不佳(恕我直言)当编写任何重大复杂的脚本时。

我真的很喜欢Python编写可以从Vim调用的多行脚本。例如,我有一个会,当一个Java构造赋予了签名一个Python脚本,像这样:

Foo(String name, int size) { 

会放出大量的是进入创建值类的样板:

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; 

我在Vim中使用这个,突出显示签名,然后输入!jhelper.py

我也曾经使用过Python脚本,我写了这些脚本来翻转行中的字符,并在找到关于revtac的文件行之前将其翻转。

4

当vim用于编写vim“宏”(你需要一个编译为+python的vim,但许多预构建的编译器以这种方式来编译)时,Python对vim最有用。 Here是关于您可以使用的一些内容(大量示例和片段!)的不错演示,并且here是vim自己的关于此功能的参考文档。

+0

@谢谢你的链接! --- MJD表示只有Lisp可以在http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html上完成源代码生成。 --- @Alex:Vim或Lisp和Vim哪个更有用? – 2009-06-30 20:17:58