Vim 格式化 xml文件, 进行快捷键映射。

linux环境中使用xmllint就可以实现对xml文件的格式化功能。

1、安装libxml2。

Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。
具体的介绍请参考 http://xmlsoft.org/。

  • 直接使用 xmllint 可能报错,如果报错,请安装 libxml2
/bin/bash: xmllint: 未找到命令

Ubuntu sudo apt-get install libxml2-utils

CentOS sudo yum install libxml2

Mac OS sudo brew install libxml2

2、使用xmllint命令格式化xml文件

在终端执行

xmllint –format ***.xml

即可输出格式化后的xml文件。

在 vim 中可以配置 .vimrc 来设置格式化的快捷键。

map <F2> :silent 1,$!xmllint -format -recover - 2>/dev/null <CR>

这样在重新启动vim时就可以用F2快捷键来对xml文件进行格式化了.

  • silent

    • To run an external command without the Press ENTER or type command to continue prompt, use `:silent !.
    • 通常在使用!运行外部Shell命令时,将显示提示信息“Press ENTER or type command to continue”,需要用户点击回车键才可以返回常规模式。
      在这里插入图片描述
      如果不希望显示提示信息,那么可以使用:silent命令::silent !echo 'Hello World'
  • 1,$ 从第一行到文件结尾

  • ! {command} 执行外部命令

  • - 代表标准输入 或 标准输出

  • % 当前文件

  • –recover

    • Output any parsable portions of an invalid document.
  • –format

    • Reformat and reindent the output. The XMLLINT_INDENT environment variable controls the indentation. The default value is two spaces " ").
  1. 1,$ 代表第一行到最后一行。

  2. !xmllint -format -recover -用当前文件( 第一行到最后一行 )做输入,格式化后,从第一行开始,输出到标准输出( - 代表标准输出 ),再从标准输出到当前 vim buffer, 替换本文内容。

* :$ !command
将shell命令command的结果插入到当前行

  1. 2>/dev/null 错误信息直接重定向到黑洞。

  2. <CR> 回车,直接执行。

2> /dev/null 和 >/dev/null 2>&1 和 2>&1>/dev/null 的区别

3、xml 标签中有中文使用 xmllint 格式化会出现乱码

在文件头部加上 encoding=“utf-8” 就可以了。

 <?xml version="1.0" encoding="utf-8"?>
 ...
<description>
  hive队列中任务的默认生命时长
</description>
 ...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值