20

前几天我正在寻找一种在 Vim 中自动格式化/漂亮打印 JSON 的快速方法,并在 Stack Overflow 上找到了这个很棒的小命令::%!python -m json.tool

这让我开始搜索其他 Python 工具的列表来漂亮地打印常见的 Web 文件,但我找不到太多。是否有一个很好的 Python 工具资源/列表,他们发现它们对于清理 Vim 中格式不佳的 Web 内容(例如 HTML、XML、JavaScript 等)特别有用?

4

5 回答 5

5

对于 XHTML 和 XML 文件,您可以使用 tidy。

:%!tidy -i -asxhtml -utf8

:`<,`>!tidy -i -xml -utf8

最后一个适用于视觉选择。

于 2011-08-11T08:00:06.653 回答
5

Python

您只是在寻找 Python 单行代码的资源吗?您可以浏览Python 标准库文档以找到更多灵感。

或者简单地谷歌“python one-liners json.tool”来查找其他资源。例如,这篇 Reddit 帖子:给 Python 博主的建议:弄清楚 stdlib 的所有主要功能是什么,并记录下来

命令行

Vim 不仅支持 Python(例如,Keith 建议的HTML Tidy )。任何可以接受管道/标准输入的工具都可以很好地与 Vim 集成。

%命令仅选择包含整个文件的范围,并!通过外部程序过滤该范围。

:help :%:help :!

于 2011-08-11T20:38:13.680 回答
2

Vim 有一个命令来执行它,=(等于),就像 inggvG=将重新缩进整个文件。尝试:help =获取有关如何使用函数和外部程序的更多信息=。默认配置使用适用于大多数文件类型的内部缩进规则。

于 2011-08-11T07:32:23.717 回答
0

!autopep8 -i %似乎在vim. 开关是在-i原地覆盖现有文件。使用more @ autopep8 --help.

vim如果您真的想成为高级用户,那么有一个插件。在您之外vim可以使用autopep8 -diff {filename} or autopep8 {filename}.

于 2014-06-09T11:52:03.537 回答
0

有很多很好的工具可以在两种格式之间转换文本:

  1. par:用于硬换行。

  2. pandoc:用于 HTML、LaTeX、rst 和 Markdown

  3. autopep8:用于将 Python 代码解析为AST并将其输出为符合 pep8 标准。

    ...

Vim 旨在通过强大的formatprg设置来使用这些实用程序。默认情况下,它映射到 gq 运算符。它适用于 Vim 动作、Vim 文本对象、选择等。

例如,我对我的 Python 文件使用以下设置

au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ -

John MacFarlne has a good article about creating a specialised script using pandoc which you could stick in your vimrc.

于 2014-06-28T20:16:16.157 回答