Python命令是否适用于Vim';什么是视觉模式?

Python命令是否适用于Vim';什么是视觉模式?,python,vim,Python,Vim,我发现AWK中的以下命令在Vim中很有用 :'<,'>!awk '{ print $2 }' :”在Python中很难制作有用的单行过滤器。您需要导入sys以获取stdin,并且您已经开始推送它了。这并不是说Python有什么不好的地方。我的感觉是Python针对多行脚本进行了优化,而在一行程序上表现出色的语言(awk、sed、bash,我可以举出其他语言的名字,但可能会被烧掉……)在编写任何重大复杂性的脚本时往往表现得不太好(IMHO) 我非常喜欢Python编写可以从Vim调用

我发现AWK中的以下命令在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更有用?