如何修复产品,其全乱了他的巨大的HTML文件的缩进?
我尝试了平时"gg=G" command,这是我用它来修复代码文件的缩进。然而,这似乎并没有对HTML文件的工作权利。它只是删除了所有格式。
我也试着设置:filetype = xml
,看是否欺骗它,以为这是一个XML文件,将有助于但它仍然没有做到这一点。
随着我的filetype indent on
,Vim的缩进HTML文件很好地内.vimrc
。
简单的例子为2 shiftwidth
:
<html>
<body>
<p>
text
</p>
</body>
</html>
我尝试通常的“GG = G”命令,这是我使用固定的代码文件的缩进。然而,这似乎并没有对HTML文件的工作权利。它只是删除了所有格式。
如果Vim的自动套用格式/缩进gg=G
似乎是“破”(比如左缩进每一行),最有可能的缩进插件未启用/加载。它应该给一个错误信息,而不是仅仅做不好的缩进,否则用户只是觉得自动套用格式/缩进功能是可怕的,当它实际上是相当不错的。
要检查是否缩进插件启用/加载,运行:scriptnames
。看看.../indent/html.vim
是在列表中。如果没有,那么这意味着该插件没有加载。在这种情况下,加入这一行~/.vimrc
:
filetype plugin indent on
现在,如果你打开文件,并运行:scriptnames
,你应该看到.../indent/html.vim
。然后运行gg=G
,现在应该做的正确的自动套用格式/缩进。 (虽然它不会增加换行符,因此,如果所有的HTML代码是单行线,它不会缩进)。
注:如果您在Vim命令行,而不是:filetype plugin indent on
上运行~/.vimrc
,则必须重新打开该文件:e
。
此外,您不必担心autoindent
和smartindent
设置,它们不适合此。
有几件事情都需要到位。只是为了总结它们都在同一个位置:
设置以下选项:
:filetype indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
然后或者将光标移动到该文件,并缩进到端部的顶部:gg
=G
或者选择所需的文本缩进和命中=缩进它。
使用智能缩进的主要问题是,如果XML(或HTML)坐落在一条线,因为它最终可能会从一个卷曲的请求回来再gg=G
不会做的伎俩。相反,我刚刚经历用整齐的VI直接调用一个良好的缩进:
:!tidy -mi -xml -wrap 0 %
这主要是告诉VI调用整洁清理的XML文件不换行,以使它们适合于默认68个字符宽线。我处理了大量29MB的XML文件,并花了5或6秒。我想一个HTML文件,因此命令应该是:
:!tidy -mi -html -wrap 0 %
正如评论所说,tidy
是一种基本的工具,你可以找到许多基本Linux / MacOS的系统。这里是谟在页面的情况下,你希望你有,但并不:HTML Tidy。
希望这可以帮助。
这是我的解决方案,很好地工作在一个很好的方式间隔开“丑” 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)
然后删除所有空/只的空白线(详见here,也这是双重逸出,因为它在壳)
你甚至可以添加| wq! fileOut.html
到最后,如果你不希望在所有的进入Vim,只是清理文件。
我使用这个脚本:https://github.com/maksimr/vim-jsbeautify
在上面的链接,你拥有所有的信息:
:call HtmlBeautify()
做这项工作一级棒!
你是否尝试过使用的Vim的网站上的HTML脚本缩进?
这里有让你缩进,加上所有的HTML的格式打印,你不一定要在乎,而你正在编辑一个重量级的解决方案。
首先,下载Tidy。确保你的二进制文件添加到您的路径,这样你就可以从任何位置调用它。
接下来,创建说明您最喜欢的HTML味配置文件。文档不是很大的整齐,但这里是一个overview和all the options的列表。下面是我的配置文件:
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)。
还有一个文件:添加以下行(或创建)html.vim
,也ftplugin
:
map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>
要使用它,只需打开一个HTML文件,并键入/tidy
。 (这/
是<leader>
键)。
你去那里!不是一个快速的解决方案,以任何方式,但现在你编辑那些巨大的,混乱的HTML文件,好一点的装备。
您可以整合双方tidy并通过安装插件html-beautify自动vim-autoformat。在此之后,你可以执行任何一个格式化安装有一个按键。