如何清理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标签html
, head
, body
和其他一些默认情况下并不缩进。 这是有道理的,因为几乎所有的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
在上面的链接,你有所有的信息:
- 安装
- configuration(从第一个例子复制)
- 运行
: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 。 之后,您可以执行任何一个格式化程序安装一个按键。