如何清理VI中的HTML文件的缩进?

我如何解决他的巨大的HTML文件的缩进是全部搞砸了?

我尝试了通常的“gg = G”命令 ,这是我用来修复代码文件的缩进的。 但是,它似乎并没有正确处理HTML文件。 它只是删除所有的格式。

我也尝试设置:filetype = xml ,看看是否欺骗它认为这是一个XML文件将有所帮助,但它仍然没有这样做。

在我的.vimrc文件里压缩文件,Vim很好地缩进HTML文件。

简单的例子,一个2的shiftwidth

 <html> <body> <p> text </p> </body> </html> 

有几件事情都需要到位。 只是在一个地方总结它们:

设置以下选项:

 :filetype indent on :set filetype=html # abbrev - :set ft=html :set smartindent # abbrev - :set si 

然后将光标移动到文件顶部并缩进到最后: gg =G
或者select所需的文本进行缩进,然后按=缩进。

使用智能缩进的主要问题是,如果XML(或HTML)位于一行,因为它最终可能会从curl请求返回,那么gg=G将无法实现。 相反,我刚刚经历了一个很好的缩进使用从VI直接调用的整洁:

 :!tidy -mi -xml -wrap 0 % 

这基本上告诉VI调用整洁来清理一个XML文件,而不是包装行,以使它们符合默认的68个字符宽行。 我处理了一个大的29MB的XML文件,并花了5或6秒。 我想为HTML文件命令应该是:

 :!tidy -mi -html -wrap 0 % 

希望这可以帮助。

请注意,在vim 7.4中,html标签htmlheadbody和其他一些默认情况下并不缩进。 这是有道理的,因为几乎所有的HTML文件内容都属于这些标签。 如果你真的想,你可以让这些标签缩进如下:

 :let g:html_indent_inctags = "html,body,head,tbody" 

看到这里和这里的更多信息。

这是我的解决scheme,以很好的方式打开“丑陋的”HTML:

 vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d" 

sw命令是因为我的默认值是4,对于HTML来说太高了。

下一部分在每个元素( > )之后添加一个换行符(Vim认为它是一个回车,叹息)

然后用=重新缩进整个文件

然后unhighlight > (因为我已经在我的vimrc set hlsearch

然后删除所有空的/只有空白的行(请参阅这里获取更多信息,这也是双重转义的,因为它在shell中)

你甚至可以添加| wq! fileOut.html | wq! fileOut.html | wq! fileOut.html到最后,如果你不想进入Vim,但只是清理文件。

我使用这个脚本: https : //github.com/maksimr/vim-jsbeautify

在上面的链接,你有所有的信息:

  1. 安装
  2. configuration(从第一个例子复制)
  3. 运行:call HtmlBeautify()

做工精美!

你有没有尝试在Vim网站上使用HTML缩进脚本?

这是一个重量级的解决scheme,让你缩进,再加上你在编辑时不需要关心的所有HTML漂亮打印。

首先,下载Tidy 。 确保将二进制文件添加到path中,以便可以从任何位置调用它。

接下来,创build一个描述你喜欢的HTML风格的configuration文件。 文档对Tidy来说并不是很好,但是这里是一个概述 ,以及所有选项的列表。 这是我的configuration文件:

 bare: yes break-before-br: no clean: yes drop-proprietary-attributes: yes fix-uri: yes indent-spaces: 4 indent: yes logical-emphasis: yes markup: yes output-xhtml: yes quiet: yes quote-marks: yes replace-color: yes tab-size: 4 uppercase-tags: no vertical-space: yes word-2000: yes wrap: 0 

保存为tidyrc_html.txt在您的ftplugin文件夹(在vimfiles下)。

多一个文件:在ftplugin添加下面一行(或创build) html.vim

 map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR> 

要使用它,只需打开一个HTML文件,然后input/tidy 。 (那个/<leader>键。)

你走了! 不是一个快速的解决scheme,但现在你有更好的装备编辑这些巨大的,混乱的HTML文件。

您可以通过安装插件vim-autoformat来自动整合整理和html-beautify 。 之后,您可以执行任何一个格式化程序安装一个按键。