我发现AWK中的以下命令在Vim中很有用
:'<,'>!awk '{ print $2 }'Python在Vim中可能也很有用。但是,我还没有在Python中找到用于Vim可视化模式的有用命令。
在Vim中使用哪些Python命令
发布于 2009-06-30 16:38:27
在Python中很难制作有用的一行过滤器。您需要导入sys来获取stdin,并且您已经开始推动它了。这并不是说Python有什么不好的地方。我的感觉是Python是针对多行脚本进行优化的,而那些在一行程序(awk、sed、bash,我可以给其他语言命名,但可能会被燃烧)的语言.在编写任何复杂的脚本时,倾向于不太好地工作(IMHO)。
我真的很喜欢Python,因为它可以编写我可以从Vim调用的多行脚本。例如,我有一个Python脚本,当为Java构造函数提供签名时,如下所示:
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;我通过高亮显示签名,然后键入!jhelper.py来使用Vim中的内容。
在了解rev和tac之前,我还经常使用我编写的Python脚本来反转字符的行数和文件的行数。
发布于 2009-06-30 17:30:44
当用于编写vim“宏”时,Python对vim最有用(您需要使用+python编译的vim,但许多预构建的vim是这样的)。这里是一个很好的演示文稿,介绍了一些您可以使用的东西(大量的示例和片段!),这里是vim自己关于这个特性的参考文档。
https://stackoverflow.com/questions/1064644
复制相似问题