如何删除 vim 中的“^[[m”和“^[[32”字符

How to remove "^[[m" and "^[[32" characters in vim

我想将合并分支的名称列表获取到一个文件中。

$ 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 字符?

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

git branch --no-color --merged 

您看到的奇怪字符有用于为终端输出着色的 ASCI 转义码。 https://en.wikipedia.org/wiki/ANSI_escape_code#Colors 摆脱它们的最佳方法是使用 --no-color 标志要求 git 不生成它们。然后你将得到纯文本输出。

另外 git 应该在重定向时自动退出着色输出。至少在我的情况下它是这样工作的。 (鱼)