Vim 有没有可以折叠 HTML 标签的插件?
或者还有另一种方法来设置折叠或展开 html 标签的快捷方式?
我想折叠/展开 html 标签,就像缩进折叠一样。
我发现
zfat
(或者同样地,zfit
)非常适合折叠 HTML 文档。 za
将切换(打开或关闭)现有折叠。 zR
打开当前文档中的所有折叠,zM
有效地重新启用文档中标记的所有现有折叠。
如果您发现自己广泛使用折叠,您可以在
.vimrc.
中为自己制作一些方便的按键绑定
如果您缩进 HTML,则以下内容应该有效:
set foldmethod=indent
我发现这个问题是有太多折叠。为了解决这个问题,我分别使用
zO
和 zc
来打开和关闭嵌套折叠。
请参阅
help fold-indent
了解更多信息:
The folds are automatically defined by the indent of the lines.
The foldlevel is computed from the indent of the line, divided by the
'shiftwidth' (rounded down). A sequence of lines with the same or higher fold
level form a fold, with the lines with a higher level forming a nested fold.
The nesting of folds is limited with 'foldnestmax'.
Some lines are ignored and get the fold level of the line above or below it,
whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
When you want to ignore lines in another way, use the 'expr' method. The
indent() function can be used in 'foldexpr' to get the indent of a line.
使用foldmethod语法折叠html,更简单。
这个答案基于 vim 中的 HTML 语法折叠。作者是@Ingo Karcat。
将折叠方法设置为具有以下语法的:
vim 命令行
:set foldmethod=syntax
或将设置放入
~/.vim/after/ftplugin/html.vim
setlocal foldmethod=syntax
还请注意,到目前为止,默认语法脚本仅折叠多行 标签本身,而不是开始标签和结束标签之间的文本。
So, this gets folded:
<div
class="foo"
id="bar"
>
And this doesn't
<div>
<b>text between here</b>
</div>
要在标签之间折叠,您需要扩展语法脚本,通过 以下,最好放入
~/.vim/after/syntax/html.vim
语法折叠在除 void 之外的所有 html 元素之间执行 (那些没有关闭兄弟姐妹的,例如
<br>
)
syntax region htmlFold start="<\z(\<\(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|para\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d
安装js-beautify命令(JavaScript版本)
npm -g install js-beautify
wget --no-check-certificate https://www.google.com.hk/ -O google.index.html
js-beautify -f google.index.html -o google.index.bt.html
http://www.google.com.hk 原html:
js-美化和vim折叠:
补充 James Lai 的回答。 最初我的foldmethod=syntax 所以 zfat 不起作用。 解决方案是将foldemethod设置为手动
:setlocal foldmethod=manual
检查正在使用哪种折叠方法,
:setlocal foldmethod?
首先
set foldmethod=syntax
并尝试zfit
折叠开始标签和zo
展开标签,它在我的vim上运行良好。