A list of useful Python commands for Vim?
(P)I was looking for a quick way to self format/pretty-print json in vim the other day and found this great little command on stack ;overflow:EDOCX1 pensible 0(p)(P)That sent me on a search for a list of other pyton tools to pretty-print common web files,but I could't find much.是否有一个良好的资源/Python工具清单,这些工具确定了具体的用途,用以清理贫困者形成的VIM(E.G.html,XML,Javascript等)网页工作室?(p)
- 非常酷,我希望看到更多这些-发现特性的绝佳方式。
- 这是一个扩展讨论,形式是"我用这个,你用什么?"。请参阅常见问题解答,了解此问题为何偏离主题。如果选中社区wiki标志,可能没问题。
- @Merlyn我明白你的意思,但我的目的实际上不是用单独的命令开始一个帖子列表,而是找到一个链接到一个已有的资源或wiki:例如"docs.python.org/cool pretty print goodness.html"。我不熟悉vim,从textmate切换过来,当我找到json python工具时,我渴望得到更多,但找不到合适的资源。
- 如果你来自textmate,那么你可能会对snipmate插件感兴趣。
- 谢谢你,基思。我已经开始和贾纳斯一起玩了,真是太棒了!
Python
您只是在为python一行程序寻找资源吗?您可以浏览python标准库文档以找到更多的灵感。
或者只需谷歌"python one-liners json.tool"就可以找到更多的资源。例如,这个reddit帖子:建议一个python blogger:弄清楚stdlib的主要功能是什么,并记录下来。
命令行
Vim不仅支持Python(如Keith建议的HTML Tidy)。任何可以接受管道/标准输入的工具都将与VIM很好地集成。
%命令只选择一个包含整个文件的范围,!通过外部程序过滤该范围。
见:help :%和:help :!。
- 很完美。谢谢。我对Vim是个新手,根本没有玩过python,所以我仍然在尝试了解我的方向,但看起来我只是需要使用不同的工具——python或其他——并找到最适合我工作流程的工具。谢谢你的链接,这正是我需要的-只是一些有用工具的快速启动。
对于XHTML和XML文件,可以使用Tidy。
1 2 3
| :%!tidy -i -asxhtml -utf8
:`<,`>!tidy -i -xml -utf8 |
最后一个是视觉选择。
- 这看起来很有希望!是否有其他标志可用于整理命令?例如-javascript、-php、-ruby等?
- @约翰姆多纳休:它被称为HTML整洁(简称整洁)。它适用于HTML和XML文档。整理.sourceforge.net/文档
- 基思说得对!抓住了。我不确定是否还有其他语言的扩展整洁/漂亮的印刷品。看起来我只需要为我需要使用的任何语言组装一个工具集。仍然在这里得到维姆的土地。谢谢你的帮助。
vim有一个命令来执行,EDOCX1(等于0),就像在EDOCX1(等于1)中一样,将重新生成整个文件。有关如何在=中使用函数和外部程序的详细信息,请尝试:help =。默认配置使用适用于大多数文件类型的内部缩进规则。
- 对于HTML,=g工作得很好,但是对于Python,我可以看到它通过将if块与函数的其余部分等组合在一起破坏了逻辑。我更喜欢自动泊车8路线。
有很多好的工具可以在两种格式之间转换文本:
PAR:用于硬线包装。
PanDoc:用于HTML、LaTex、RST和Markdown
autopep8:用于将Python代码解析为AST,并将其作为符合PEP8的代码输出。
…
VIM的设计是通过强大的formatprg设置来利用这些实用程序。默认情况下,映射到gq运算符。它适用于VIM运动、VIM文本对象、选择等。
例如,我在python文件上使用下面的设置
1
| au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ - |
约翰·麦克法尔恩有一篇很好的文章,关于如何使用PanDoc创建一个专门的脚本,你可以将它应用到你的VIMRC中。
!autopep8 -i %在vim中似乎工作得很好。-i开关用于将现有文件重写到位。使用more @ autopep8 --help。
如果你真的想成为一个超级用户的话,有一个vim插件。在vim之外,您可以使用autopep8 -diff {filename} or autopep8 {filename}进行测试。