如何在vim中删除"^[[m"和"^[[32"字符

3
我想获取合并分支名单并保存到文件中。
$ git branch --merged
  fix-typo
* master
  update-readme

然而,当我将此输出写入文件并使用Vim打开它时,我发现了一些意外的字符:
$ git branch --merged > test
$ vim test

  fix-typo^[[m
* ^[[32mmaster^[[m
  update-readme^[[m

它们是什么,我如何移除^[[m^[[32字符?

1个回答

3

TL;DR:使用--no-color标志

git branch --no-color --merged 

你在那里看到的奇怪字符是用 ASCI 转义码来为终端输出着色。最好的方法是使用 --no-color 标志请求 git 不生成这些代码,以便获得纯文本输出。此外,当 git 被重定向时,它应该自动放弃对输出进行着色处理。至少在我的情况下(fish shell),它能正常工作。参考:https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

2
非常感谢!我查看了你的最后一句话,意识到问题在于我的git配置color.ui=always。我将其更改为color.ui=auto,现在不需要使用--no-color标志了。 - eyettea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接