我已阅读Vim indent xml file和Indenting entire file in Vim without leaving current cursor location,但我想略有不同:
对于那些感兴趣的人:我使用xml格式的书籍。如果文件已更改,通常是添加选项卡和/或空格。这会弄乱我的数据(因为文本本身可能实际上有标签或空格)。
答案 0 :(得分:1)
你有一些选择:
如果您的XML具有基于标签的缩进,则可以通过更改'tabstop'
值来更改缩进的可视外观。这根本不会影响文件中的物理<Tab>
字符。
您可以在读取后更改缩进量,并在写入前不久撤消。这是一个将空格减半/加倍的示例:
:autocmd BufReadPost,BufWritePost * %substitute/^\( \+\)\1/\1/e
:autocmd BufWritePre * %substitute/^ \+/&&/e
答案 1 :(得分:1)
在Vim中,所有编辑都在缓冲区上完成,缓冲区是文件的内部表示。只要您不将更改写入磁盘,您的文件就不会受到影响。
但是,如果你真的不想冒这个风险......在副本上工作。