Чи можу я отримати менше, щоб не монохромно виходити?
Наприклад, вихідний сигнал git diff
кольоровий, але git diff | less
це не так.
less
лише про .
Чи можу я отримати менше, щоб не монохромно виходити?
Наприклад, вихідний сигнал git diff
кольоровий, але git diff | less
це не так.
less
лише про .
Відповіді:
Використання:
git diff --color=always | less -r
--color=always
є, щоб сказати, git
щоб вивести кольорові коди, навіть якщо на виході є труба (не tty). І -r
чи варто сказати, less
щоб інтерпретувати ці кольорові коди та інші послідовності втечі. Використовуйте лише -R
для ANSI кольорових кодів.
git config color.ui true
повинно бути достатньо для отримання кольорового виводу та для автоматичного запуску пейджера для довгих виходів.
watch --color 'git diff --cached --color=always'
і його друзі можуть принести вам додаткову дивовижність.
less -R
кращі (чи export LESS=R
в /etc/profile
)? Чому б ви дозволили йому відображати що-небудь, крім 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
працює так само. Це не є частиною цього питання чи відповіді, але я потрапив сюди з гуглити з цього питання, так що воно є.
Іншим варіантом буде включення кольорів та використання "менше -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
виконайте роботу для команд типу ( 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
) варіант для меншої або також -R
(лише послідовності втечі 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
Просто для додання іншої версії на "використання менше -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/isissue/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