Можно ли получить меньше, чтобы не монохромно выводить его?
Например, вывод из 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 true
do 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