簡體   English   中英

vim可以在不更改文件的情況下縮進XML嗎?

[英]Can vim indent XML without changing the file?

我已經在不離開當前光標位置的情況下閱讀了Vim縮進xml文件 Vim中縮進 整個文件 ,但是我想稍微有所不同:

  • 我可以使用vim縮進整個XML文件,但不更改文件。 唯一應該更改的是表示形式,而不是文件本身。

對於那些感興趣的人:我使用xml格式的書籍。 如果文件被更改,通常是通過添加制表符和/或空格來實現的。 這弄亂了我的數據(因為文本本身實際上可能有制表符或空格)。

您有一些選擇:

更改標簽寬度

如果您的XML具有基於Tab的縮進,則可以通過更改'tabstop'值來改變縮進的外觀。 這根本不影響文件中的物理<Tab>字符。

預/后處理

您可以在讀取后更改縮進量,並在寫入前不久撤消該操作。 這是將空格減半/加倍的示例:

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

在Vim中,所有編輯都是在緩沖區(文件的內部表示)上完成的。 只要您不將更改寫入磁盤,文件就不會被更改。

但是,如果您真的不想冒這個風險,請制作副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM