vim可以在不更改文件的情况下缩进XML吗?

时间:2015-03-16 18:02:47

标签: xml vim indentation

我已阅读Vim indent xml fileIndenting entire file in Vim without leaving current cursor location,但我想略有不同:

  • 我可以使用vim缩进整个XML文件但不更改文件。唯一应该改变的是表示,而不是文件本身。

对于那些感兴趣的人:我使用xml格式的书籍。如果文件已更改,通常是添加选项卡和/或空格。这会弄乱我的数据(因为文本本身可能实际上有标签或空格)。

2 个答案:

答案 0 :(得分:1)

你有一些选择:

更改标签宽度

如果您的XML具有基于标签的缩进,则可以通过更改'tabstop'值来更改缩进的可视外观。这根本不会影响文件中的物理<Tab>字符。

前置/后置过程

您可以在读取后更改缩进量,并在写入前不久撤消。这是一个将空格减半/加倍的示例:

:autocmd BufReadPost,BufWritePost  * %substitute/^\( \+\)\1/\1/e
:autocmd BufWritePre               * %substitute/^ \+/&&/e

答案 1 :(得分:1)

在Vim中,所有编辑都在缓冲区上完成,缓冲区是文件的内部表示。只要您不将更改写入磁盘,您的文件就不会受到影响。

但是,如果你真的不想冒这个风险......在副本上工作。