首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vim中使用‘!’命令维护现有缩进

在Vim中使用‘!’命令维护现有缩进
EN

Stack Overflow用户
提问于 2015-02-07 02:18:57
回答 1查看 42关注 0票数 1

我想清理一堆vim的yaml文件。yaml文件是用于测试的补丁,它们包含XML的文字字符串。它们看起来像:

代码语言:javascript
复制
-
  - "<xml>blah blah blah …1000 characters later</xml>"
  - "<more>…</more>"

我想让他们看起来像:

代码语言:javascript
复制
-
  - >
    <xml>
      <nicely>formatted</nicely>
      …
    </xml>
  - >
    <more>
      …
    </more>

我去掉引号,将光标放在未格式化xml的开头,然后按>,enter,<tab>

代码语言:javascript
复制
-
  - >
    <xml>…

但是,我尝试用我知道的唯一方式来格式化xml:shift-v来选择行。:'<,'>!xmllint --nocdata --format - | awk 'NR>1'来格式化xml,然后我得到

代码语言:javascript
复制
-
  - >
<xml>
  <nicely>formatted</nicely>
  …
</xml>

然后,我必须重新选择xml并使用2>>进行增强。

在Vim中执行!命令时,是否有更好的方法来维护缩进?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-07 14:05:47

您的问题并没有完全说明这一点,但这在某种程度上意味着vim是缩进被剥离的原因,因此,为了明确起见,缩进是由xmllint提取的。

您可以尝试首先保存缩进,但如果缩进在不同的行之间有所不同,则可能会造成混淆。在本例中,查看正在运行的命令以稍后添加缩进可能更有意义--您可以通过将其添加到命令筛选器中来自动完成,例如:

:'<,'>!xmllint --nocdata --format - | awk 'NR>1' | sed -e 's/^/\t/'

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28377836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档