Можно ли получить меньше, чтобы не монохромно выводить его?
Например, вывод из git diffцветного, но git diff | lessнет.
lessтолько о .
Можно ли получить меньше, чтобы не монохромно выводить его?
Например, вывод из git diffцветного, но git diff | lessнет.
lessтолько о .
Ответы:
Использование:
git diff --color=always | less -r
--color=alwaysнужно gitли выводить цветовые коды, даже если на выходе есть труба (не tty). И -rесть, что сказать, lessчтобы интерпретировать эти цветовые коды и другие escape-последовательности. Используйте только -Rдля цветовых кодов ANSI.
git config color.ui trueдолжно хватить цветного вывода и автоматического запуска пейджера для длинных выходов.
watch --color 'git diff --cached --color=always'и его друзья могут принести вам дополнительную удивительность.
less -Rлучше использовать (или export LESS=Rв /etc/profile)? Почему вы позволяете ему отображать что-либо кроме «цветных» escape-последовательностей ANSI? Также на странице руководства написаноWarning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.
-rопцию, вы можете просто ввести «-r» в lessкомандной строке. Это, конечно, работает с большинством или с меньшим количеством опций (т. -iЕ. Для включения игнорирования).
grep --color=alwaysработает так же. Это не часть этого вопроса или ответа, но я пришел сюда от поисков по поводу этого вопроса, так что вот оно.
Другой вариант - включить цвета и использовать «less -r» в качестве пейджера.
git config --global color.ui true
git config --global core.pager 'less -r'
Это приводит к
[color]
ui = true
[core]
pager = less -r
в вашем ~ / .gitconfig
Для получения дополнительной информации см. Книгу Pro Git .
color.ui trueне работает с пейджером, но color.ui alwaysсделал. Возможно, это изменилось с момента публикации ответа.
color.ui truedo work для таких команд, как git -p diffи git -p status(где -pозначает, что весь вывод выводится в $ PAGER, по умолчанию это less) даже для довольно старых версий git (например, , Git 1.7.1). Но вам все еще нужно color.ui always(что говорит git выводить цветовые коды ", даже если вывод представляет собой трубу (не tty)"), чтобы получить цветной вывод при непосредственном указании git status | less -rили git diff | less -r. Когда вы явно указываете перенаправление вывода, вы не увидите вывод после выхода из пейджера.
Используйте опцию -r( --raw-control-chars) для less или также -R(только escape-последовательности ANSI).
У меня есть псевдоним для этого в ~/.bashrc
alias rless='less -r'
alias less='less -r'. Любая причина не для?
-rкогда оно не нужно, может привести к проблеме визуализации.
ackс less -rвами потерять возврат каретки
\lessесли визуализация не работает.
lessни к чему псевдониму , просто установите $LESSпеременную окружения для набора флагов, которые вы всегда хотите предоставить less, напримерexport LESS='-MRq -z-2 -j2’
Также treeесть возможность навязывать цвета:
tree -C | less -r
И так далее для ls:
ls -lR --color | less -r
Просто добавьте еще одну версию в «use less -r»:
используйте переменную окружения LESS со значением r (или добавьте r к тому, что уже есть)
например, как я использую это в моем .bashrc
export LESS=-Xr
(X останавливает очистку экрана при выходе меньше)
В случае, если кто-то заинтересован в поиске json jqи lessэто может быть достигнуто с помощью:
jq -C <jq args> file.json | less -R
например
jq -C . file.json | less -R
Источник: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
Я знаю, что он старый, и многие уже дали правильный ответ, но я хотел бы добавить, что его всегда лучше использовать, less -Rа не в том less -rслучае, если вам нужны только цвета ANSI, так как -rмогут возникнуть проблемы с отображением символов.
Из руководства:
-r or --raw-control-chars
Causes "raw" control characters to be displayed. The default
is to display control characters using the caret notation; for
example, a control-A (octal 001) is displayed as "^A". Warn‐
ing: when the -r option is used, less cannot keep track of the
actual appearance of the screen (since this depends on how the
screen responds to each type of control character). Thus, var‐
ious display problems may result, such as long lines being
split in the wrong place.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained
correctly in most cases. ANSI "color" escape sequences are
sequences of the form:
ESC [ ... m