首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python命令是否适用于Vim的可视化模式?

Python命令是否适用于Vim的可视化模式?
EN

Stack Overflow用户
提问于 2009-06-30 16:19:31
回答 2查看 346关注 0票数 0

我发现AWK中的以下命令在Vim中很有用

代码语言:javascript
复制
:'<,'>!awk '{ print $2 }'

Python在Vim中可能也很有用。但是,我还没有在Python中找到用于Vim可视化模式的有用命令。

在Vim中使用哪些Python命令

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-30 16:38:27

在Python中很难制作有用的一行过滤器。您需要导入sys来获取stdin,并且您已经开始推动它了。这并不是说Python有什么不好的地方。我的感觉是Python是针对多行脚本进行优化的,而那些在一行程序(awk、sed、bash,我可以给其他语言命名,但可能会被燃烧)的语言.在编写任何复杂的脚本时,倾向于不太好地工作(IMHO)。

我真的很喜欢Python,因为它可以编写我可以从Vim调用的多行脚本。例如,我有一个Python脚本,当为Java构造函数提供签名时,如下所示:

代码语言:javascript
复制
Foo(String name, int size) {

将释放大量用于创建值类的样板:

代码语言:javascript
复制
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中的内容。

在了解revtac之前,我还经常使用我编写的Python脚本来反转字符的行数和文件的行数。

票数 4
EN

Stack Overflow用户

发布于 2009-06-30 17:30:44

当用于编写vim“宏”时,Python对vim最有用(您需要使用+python编译的vim,但许多预构建的vim是这样的)。这里是一个很好的演示文稿,介绍了一些您可以使用的东西(大量的示例和片段!),这里是vim自己关于这个特性的参考文档。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1064644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档