首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Vim中使用Python?

如何在Vim中使用Python?
EN

Stack Overflow用户
提问于 2009-02-01 21:10:02
回答 12查看 20.9K关注 0票数 52

我在Vim和Python之间浪费了很多时间。我发现手动从Python复制粘贴到Vim太慢了,反之亦然。一个很好的失败的例子是:

Python%!xrange中i的

(25);打印6*i \n

如何在Vim中直接进行这样的调整?解决了

澄清我需要一些东西给Vim,比如打印序列,算术...-我不能在Vim中做的事情。

可以详细说明这一点:“您的脚本可以从标准输入中读取数据,从而直接对给定的行(.,%,...)进行操作。”

进一步澄清

如果我想将'Hello‘打印到第4、5、6和7行,错误是什么:

:4-7!python -c“打印'hello'”

圆点。修改当前行。我可以打印多行7、32和99行吗:

:7,32,99!python -c“打印'hello'”

显然不起作用。多么?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2009-02-01 22:17:12

在任何vim窗口中,键入类似以下内容:

for x in range(1,10):
    print '-> %d' % x

以可视方式选择这两条线(V以启动可视模式),然后键入以下内容:

:!python

因为你在视觉模式下按下了':‘,结果如下所示:

:'<,'>!python

点击enter,所做的选择将被print语句的输出所取代。您可以很容易地将其转换为映射:

:vnoremap <f5> :!python<CR>
票数 165
EN

Stack Overflow用户

发布于 2009-02-01 23:00:46

可以有人详细说明这一点:“您的脚本可以从标准输入中读取,以便直接对给定的行(.,%,...)进行操作。”

一种常见的用法是使用shell中提供的“sort”命令对文本行进行排序。例如,您可以使用以下命令对整个文件进行排序:

:%!sort

或者,您可以在可视模式下选择几行,然后键入以下命令来对它们进行排序:

:!sort

您可以使用以下命令对第5-10行进行排序:

:5,10!sort

您可以编写自己的命令行脚本(假设您知道如何执行此操作)来颠倒文本行。它是这样工作的:

bash$ myreverse 'hello world!'
!dlrow olleh

您可以使用与使用sort完全相同的方式将其应用于vim中的一个打开的文件

:%!myreverse      <- all lines in your file are reversed
票数 6
EN

Stack Overflow用户

发布于 2009-02-01 21:21:47

在您的示例中,您似乎想要执行Python脚本,并将脚本的输出显示在当前的Vim缓冲区中。如果这是正确的,那么您可以在Vim的命令行中执行以下操作:

%!python -c "for i in xrange(25): print 6*i"

python-c选项为它提供了一个要运行的脚本。但是,您可能会发现这种技术只在非常短的情况下有用,因为与其他一些语言不同,Python不适合在一行上编写完整的程序。

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

https://stackoverflow.com/questions/501585

复制
相关文章

相似问题

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