Python命令是否适用于Vim';什么是视觉模式?
我发现AWK中的以下命令在Vim中很有用Python命令是否适用于Vim';什么是视觉模式?,python,vim,Python,Vim,我发现AWK中的以下命令在Vim中很有用 :'<,'>!awk '{ print $2 }' :”在Python中很难制作有用的单行过滤器。您需要导入sys以获取stdin,并且您已经开始推送它了。这并不是说Python有什么不好的地方。我的感觉是Python针对多行脚本进行了优化,而在一行程序上表现出色的语言(awk、sed、bash,我可以举出其他语言的名字,但可能会被烧掉……)在编写任何重大复杂性的脚本时往往表现得不太好(IMHO) 我非常喜欢Python编写可以从Vim调用
:'<,'>!awk '{ print $2 }'
:”在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;
我通过突出显示签名,然后键入来使用Vim中的这一点!jhelper.py
在我发现关于rev
和tac
之前,我还曾经使用我编写的Python脚本来反转行中的字符和反转文件的行,当用于编写vim“宏”时,Python对vim最为有用(您需要使用+Python
编译vim,但许多预构建的vim都是这样)。这是一个很好的演示,介绍了您可以使用的一些功能(大量示例和代码片段!),并且是vim自己关于此功能的参考文档。@感谢您提供的链接!——MJD说,只有Lisp才能在。---@亚历克斯:哪一个是使用Vim的Python更有用,还是使用Vim的Lisp更有用?