Передача по каналу вывода ls или дерева к меньшему теряет цвета?

Из снимка экрана это похоже на KDE, "Существующий Windows" от "Экранных Краев". Я не уверен, как они действуют в VM, но когда мышь добирается до края или углового положения, это инициировало то, что похоже "на Существующий Windows".

Для наблюдения, если это верно, открывают "Configure Desktop"-> Workspace Behavior-> края Screen. Это должно отобразить изображение монитора и иметь 9 выбираемых квадратов на нем. Можно выключить каждого или выбрать различное действие для той части экрана.

Поскольку Вы находитесь в VM, эта функция может быть более раздражающей, чем полезный :)

12
29.07.2014, 17:59
1 ответ

Я предполагаю, что вы используете ls --color=auto, который говорит ls, чтобы использовать цвет в 'автоматическом' режиме. В 'автоматическом' режиме меньше , чтобы увидеть, является ли STDOUT терминалом, и если да, то используйте цвет, в противном случае не используйте цвет. Когда вы подключаете ls к less, STDOUT не является клеммой, он подключается к STDINу less, который является обычной трубой.

Решение, используйте ls -цвет или ls -цвет=всегда.

Однако теперь это приводит к другой потенциальной проблеме. В зависимости от вашего меньше , он может не показывать цвет, а показывать экранирующие коды. Решение заключается в использовании меньше -R. Это говорит минус о том, что нужно пройти через экранирующие коды для цветовых экранировок ANSI. Вы не хотите использовать -r, так как это приведет к проблемам с длинными линиями, которые обернутся, так как меньшее количество не вычисляет длину линии правильно.

Полное решение:

ls --color | less -R

Аналогично для -дерева:

tree -C | less -R
15
27.01.2020, 19:55

Теги

Похожие вопросы