在 Vim 中快速格式化 XML 需先安装 xmllint,再于 .vimrc 中配置 formatprg 或快捷键(如 f),支持全文件/选区格式化,并可处理编码与缩进问题。

在 Vim 中快速格式化 XML 代码,核心是借助外部工具(如 xmllint)并配置好快捷键或命令,无需手动缩进或换行。
确保系统已安装 xmllint
xmllint 是 libxml2 提供的命令行 XML 工具,多数 Linux 发行版自带,macOS 可通过 Homebrew 安装:
- Linux(Debian/Ubuntu):
sudo apt install libxml2-utils - macOS:
brew install libxml2(通常已包含xmllint) - Windows(WSL 或 Git Bash):安装对应发行版的
libxml2-utils
终端中运行 xmllint --version 确认可用。若不可用,Vim 的格式化命令会失败。
在 Vim 中配置 XML 格式化命令
将以下内容添加到你的 ~/.vimrc(或 ~/.config/nvim/init.vim)中:
autocmd FileType xml setlocal formatprg=xmllint\ --format\ --recover\ -
这行配置让 Vim 在 XML 文件中启用 gq 命令时调用 xmllint 自动美化。之后只需:
- 选中要格式化的文本(如
ggVG全选),再按gq - 或直接对当前行/可视块使用
gq
注意:--recover 参数可容忍轻微语法错误(如缺失闭合标签),避免格式化中断。
”扩展PHP“说起来容易做起来难。PHP已经进化成一个日趋成熟的源码包几十兆大小的工具。要骇客如此复杂的一个系统,不得不学习和思考。构建本章内容时,我们最终选择了“在实战中学习”的方式。这不是最科学也不是最专业的方式,但是此方式最有趣,也得出了最好的最终结果。下面的部分,你将先快速的学习到,如何获得最基本的扩展,且这些扩展立即就可运行。然后你将学习到 Zend 的高级 API 功能,这种方式将不得
更便捷的一键格式化映射(推荐)
在 .vimrc 中添加快捷键,比如用 触发全文件格式化:
autocmd FileType xml nnoremapf :%!xmllint --format --recover -
这样打开 XML 文件后,按下 \f(默认 是 \)即可整份重排。你也可以把 改成 , 或其他键位。
处理编码与空格问题
如果 XML 声明含 encoding="GBK" 或类似非 UTF-8 编码,xmllint 可能报错。此时建议:
- 先在 Vim 中转为 UTF-8:
:set fileencoding=utf-8 | write! - 或强制指定输入编码:
:%!xmllint --encode utf-8 --format --recover - - 若输出缩进用 tab 不满意,可加
--nsclean并配合--indent(新版 xmllint 默认启用)
默认缩进为 2 空格;如需 4 空格,目前 xmllint 不支持直接配置,可后续用 :%s/^ / /g 批量替换,或改用 xmlstar 等替代工具。









