我想清理一堆vim的yaml文件。yaml文件是用于测试的补丁,它们包含XML的文字字符串。它们看起来像:
-
- "<xml>blah blah blah …1000 characters later</xml>"
- "<more>…</more>"我想让他们看起来像:
-
- >
<xml>
<nicely>formatted</nicely>
…
</xml>
- >
<more>
…
</more>我去掉引号,将光标放在未格式化xml的开头,然后按>,enter,<tab>,
-
- >
<xml>…但是,我尝试用我知道的唯一方式来格式化xml:shift-v来选择行。:'<,'>!xmllint --nocdata --format - | awk 'NR>1'来格式化xml,然后我得到
-
- >
<xml>
<nicely>formatted</nicely>
…
</xml>然后,我必须重新选择xml并使用2>>进行增强。
在Vim中执行!命令时,是否有更好的方法来维护缩进?
发布于 2015-02-07 14:05:47
您的问题并没有完全说明这一点,但这在某种程度上意味着vim是缩进被剥离的原因,因此,为了明确起见,缩进是由xmllint提取的。
您可以尝试首先保存缩进,但如果缩进在不同的行之间有所不同,则可能会造成混淆。在本例中,查看正在运行的命令以稍后添加缩进可能更有意义--您可以通过将其添加到命令筛选器中来自动完成,例如:
:'<,'>!xmllint --nocdata --format - | awk 'NR>1' | sed -e 's/^/\t/'
https://stackoverflow.com/questions/28377836
复制相似问题