Как удалить символы «^ [[m» и «^[[32» в vim

#git #vim #command-line-interface #branch

#git #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 ?

Ответ №1:

TL; DR; Использовать --no-color флаг

 git branch --no-color --merged 
  

Странные символы, которые вы видите, являются escape-кодами ASCI для раскраски вывода терминала. https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
Лучший способ избавиться от них — попросить git не создавать их с помощью --no-color флага. Тогда вы получите обычный текстовый вывод.

Также git должен автоматически отказаться от вывода раскраски при его перенаправлении. По крайней мере, в моем случае это работает именно так. (рыба)

Комментарии:

1. Большое вам спасибо! Я изучил ваше последнее предложение и понял, что проблема заключалась в том, что у меня была конфигурация git color.ui=always . Я изменил его на color.ui=auto и теперь мне не нужен --no-color флаг.