Подтвердить что ты не робот

Как избавиться от ESC [символов при использовании git diff на Mac OS X Mavericks?

Поскольку я установил OS X Mavericks, результатом команды git diff является рендеринг ESC[xxx символов следующим образом:

ESC[1mdiff --git a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xml b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1mindex 3b65cf1..0ca5d7e 100644ESC[m
ESC[1m--- a/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[1m+++ b/console/org.linkedin.glu.console-webapp/decorate-grails-methods-plugin/plugin.xmlESC[m
ESC[[email protected]@ -15,14 +15,14 @@ESC[m ESC[mThe purpose of this plugin is to decorate various grails methods.ESC[m

Это использовалось для правильной визуализации до установки Mavericks. Я не знаю, что по-другому, поэтому любая помощь в поиске и устранении неисправностей будет очень оценена.

Обратите внимание, что используемый пейджер less, поскольку, когда я нажимаю h, я получаю следующее:

             SUMMARY OF LESS COMMANDS

Commands marked with * may be preceded by a number, N.
Notes in parentheses indicate the behavior if N is given.
4b9b3361

Ответ 1

У вас есть набор переменных среды LESS? Вы можете проверить, используя:

env | grep LESS

или же:

echo $LESS

Если это так, вы хотите убедиться, что там есть опция R Это позволяет escape-последовательностям ANSI проходить через невредимые, и они будут отображаться как цвета в терминале.

Для справки я использую это:

export LESS=eFRX

Ответ 2

Это работает:

git config --global core.pager "less -r"

Ответ 3

Глобальная настройка конфигурации пейджера в git, просто отправляет выходной поток в команды more или less. Вы можете избавиться от escape-символов в этом выходе, установив глобальную конфигурационную опцию:

git config --global core.pager "more -R"

Чтобы продолжить использование more в качестве пейджера или

git config --global core.pager "less -R"

Чтобы продолжить использование less в качестве пейджера

Ответ 4

Вы меняете использование опции -R Перерисовать экран, чтобы удалить все буферизованные входные данные.

export LESS="$LESS -R"

Ответ 5

Другой альтернативой является устранение git "раскраски" вывода, делая что-то вроде

$ git config --global color.ui false

Подробнее см. git help config.

Ссылка: unix.stackexchange: Как раскрасить вывод git?

Ответ 6

Попробуйте "менее -R" (большой "R")

Это сработало для меня:

git config core.pager 'less -R'

"меньше -R" против "меньше -R"

"-R" (большой R) кажется более безопасной версией "-R" (маленький r).

Цитата от человека меньше:

-R или - -R aw-control-chars
Вызывает отображение "сырых" управляющих символов. По умолчанию для отображения управляющих символов используется обозначение каретки; например, control-A (восьмеричное 001) отображается как "^ A". Предупреждение: когда используется опция -R, less не может отслеживать фактическое отображение экрана (поскольку это зависит от того, как экран реагирует на каждый тип управляющего символа). Таким образом, могут возникнуть различные проблемы с отображением, такие как длинные строки, разделенные в неправильном месте.

-R или - -R aw-control-chars
Как и -R, но только "цветные" escape-последовательности ANSI выводятся в "сыром" виде. В отличие от -R, внешний вид экрана поддерживается в большинстве случаев правильно. "Цветные" escape-последовательности ANSI представляют собой последовательности вида:

ESC [... м

где "..." - это ноль или более символов спецификации цвета. В целях отслеживания появления экрана предполагается, что escape-последовательности цветов ANSI не перемещают курсор. Вы можете меньше думать о том, что символы, отличные от "m", могут завершать escape-последовательности цвета ANSI, устанавливая переменную среды LESSANSIENDCHARS в список символов, который может завершить escape-последовательность цвета. И вы можете меньше думать о том, что символы, отличные от стандартных, могут появляться между ESC и m, устанавливая переменную окружения LESSANSIMIDCHARS в список символов, которые могут появляться.