【发布时间】:2026-01-31 05:35:01
【问题描述】:
我希望 Vim 帮助我缩进我的 XML 文件,就像我的 C 代码一样。但是,当我使用
gg=G
它只是将所有内容都设置在左侧。我需要指定语法吗? XML 是否被识别为一种语言?
【问题讨论】:
标签: xml vim indentation vi
我希望 Vim 帮助我缩进我的 XML 文件,就像我的 C 代码一样。但是,当我使用
gg=G
它只是将所有内容都设置在左侧。我需要指定语法吗? XML 是否被识别为一种语言?
【问题讨论】:
标签: xml vim indentation vi
放
filetype plugin indent on
在.vimrc 中让 Vim 自动将 .xml 文件识别为 xml。你可能需要把
set nocompatible
在那之前。
如果文件扩展名不是.xml,你可以通过使用使Vim像xml一样威胁它
:set filetype=xml
在你这样做之后,Vim 的自动缩进(和语法高亮,和全能(在 xml 中只是关闭标签,但这仍然是一些东西))将在 xml 中正常工作。
【讨论】:
:set filetype=xml 命令会为您的文件带来有福的语法着色。甜!
是的,:set syntax=xml 应该可以工作。在 vim 7.3 中,这设置为 :set indentexpr=XmlIndentGet(v:lnum,1)。
如果你有一个单行文件,你可能需要:%s/\(<[^>]*>\)/\1\r/g,在每个标签后插入换行符(或以不同方式拆分)。
那么,gg=G 应该可以工作了。
【讨论】:
XmlIndentGet 函数,您只需要从 vim-7.3 运行时获取 indent/xml.vim 即可。我在这个文件中没有看到任何 vim-7.3 特定的内容。
:set filetype=xml。)
:%s/\(<\/[^>]*>\)/\1\r/g
将此行添加到您的 .vimrc 文件中:
:map <Space>fx :%s/\ </\r</g<cr>:%s/\ android/\randroid/g<cr>:g/^$/d<cr>gg=G`
格式化点击space fx
【讨论】: