如何修复他的巨大html文件的缩进,这些文件都搞砸了?
我尝试了通常的"gg = G"命令,这是我用来修复代码文件缩进的命令.但是,它似乎不适用于HTML文件.它只是删除了所有格式.
我也试过设置"gg=G
,看看是否欺骗它认为这是一个XML文件会有所帮助,但它仍然没有做到.
有几件事都需要到位.只是在一个位置总结它们:
设置以下选项:
:filetype indent on :set filetype=html # abbrev - :set ft=html :set smartindent # abbrev - :set si
然后将光标移动到文件的顶部并缩进到结尾:gg
=G
或者选择要缩进的所需文本,然后单击=以缩进.
随着filetype indent on
里面我的.vimrc
,Vim的缩进HTML文件相当不错.
2的简单示例shiftwidth
:
text
使用智能缩进的主要问题是,如果XML(或HTML)位于一行,因为它最终可能会从curl请求返回,那么gg=G
就不会这样做了.相反,我刚刚使用从VI直接调用的整理经历了一个很好的缩进:
:!tidy -mi -xml -wrap 0 %
这基本上告诉VI调用整理来清理一个XML文件而不是包装行以使它们适合默认的68个字符宽的行.我处理了一个大的29MB XML文件,花了5或6秒钟.我猜对于HTML文件,命令应该是:
:!tidy -mi -html -wrap 0 %
正如评论中所提到的,这tidy
是一个基本工具,您可以在许多基础Linux/MacOS系统上找到它.这是projet的页面,如果您希望拥有它,但不要:HTML Tidy.
希望这可以帮助.
正如tylerl上面解释的那样,设置以下内容:
:filetype indent on :set filetype=html :set smartindent然而!
需要注意的是在VIM 7.4 html标签html
,head
,body
,和其他一些人都不会默认缩进.这是有道理的,因为html文件中的几乎所有内容都属于这些标记.如果你真的想,你可以让这些标签缩进,如下所示:
:let g:html_indent_inctags = "html,body,head,tbody"
有关更多信息,请参见此处和此处.
这是我的解决方案,适用于以一个很好的间隔方式打开"丑陋"的HTML:
vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"
该sw
命令是因为我的默认值是4,这对于HTML来说太高了.
下一部分在每个元素(>
)之后添加换行符(Vim认为它是一个回车,叹息)
然后使用重新缩进整个文件 =
然后unhighlight >
(因为我set hlsearch
在我的vimrc中)
然后删除所有空的/仅空白行(请参阅此处了解更多信息,这也是双重转义,因为它在shell中)
| wq! fileOut.html
如果你根本不想进入Vim,你甚至可以添加到最后,但只需清理文件即可.
我使用这个脚本:https: //github.com/maksimr/vim-jsbeautify
在上面的链接中,您拥有所有信息:
安装
配置(从第一个示例复制)
跑 :call HtmlBeautify()
工作做得很漂亮!