前几天我正在寻找一种在Vim中自动格式化/漂亮打印JSON的快速方法,并在Stack Overflow上找到了这个很棒的小命令::%!python -m json.tool
这让我搜索了一些其他Python工具的列表来打印常见的网络文件,但我找不到多少。是否有一个很好的资源/ Python工具列表,他们发现这些工具对于清理Vim中格式不正确的Web内容特别有用(例如HTML,XML,JavaScript等)?
答案 0 :(得分:5)
对于XHTML和XML文件,您可以使用整洁。
:%!tidy -i -asxhtml -utf8
:`<,`>!tidy -i -xml -utf8
最后一个适用于视觉选择。
答案 1 :(得分:5)
<强>的Python 强>
您是否只是在寻找Python one-liners的资源?您可以浏览the Python standard library documentation以寻找更多灵感。
或者只是google&#34; python one-liners json.tool&#34;寻找其他资源。例如,此Reddit帖子: Suggestion for a Python blogger: figure out what what all the stdlib main functionality is, and document it
命令行
Vim支持的不仅仅是Python(例如Keith建议的HTML Tidy)。任何可以接受管道/标准输入的工具都可以很好地与Vim集成。
%
命令只选择包含整个文件的范围,并选择范围为!
的外部程序。
请参阅:help :%
和:help :!
答案 2 :(得分:2)
Vim有命令执行此操作,=
(相等),就像在ggvG=
中一样,将重新注册整个文件。有关如何使用:help =
功能和外部程序的详细信息,请尝试=
。默认配置使用适用于大多数文件类型的内部缩进规则。
答案 3 :(得分:0)
!autopep8 -i %
似乎在vim
中正常工作。 -i
开关将覆盖现有文件。使用more @ autopep8 --help
。
如果你真的想成为超级用户,那么有一个vim
插件。在vim
之外,您可以使用autopep8 -diff {filename} or autopep8 {filename}
进行测试。
答案 4 :(得分:0)
有许多好的工具可以在两种格式之间转换文本:
autopep8:用于将Python代码解析为AST并将其吐出为pep8兼容。
...
Vim旨在通过强大的formatprg
设置来使用此类实用程序。默认情况下,它映射到gq运算符。它适用于Vim动作,Vim文本对象,选择等。
例如,我在Python文件中使用以下设置
au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ -
John MacFarlne a good article关于使用pandoc创建一个专门的脚本,你可以将它放在你的vimrc中。