Saya baru saja menambahkan ini ke saya .bashrc
untuk mendapatkan keluaran berwarna dengan less
:
# Colorize less man pages.
export LESS_TERMCAP_md=$'\e[01;34m'
export LESS_TERMCAP_us=$'\e[01;33m'
export LESS_TERMCAP_so=$'\e[01;44;37m'
export LESS_TERMCAP_mb=$'\e[01;31m'
export LESS_TERMCAP_mr=$'\e[01;35m'
export LESS_TERMCAP_me=$'\e[00m'
export LESS_TERMCAP_ue=$'\e[00m'
export LESS_TERMCAP_se=$'\e[00m'
... dan sekarang semua perintah tertentu yang tiba-tiba (tampaknya terkait dengan menampilkan variabel lingkungan) menghasilkan keluaran warna yang cocok dengan pengaturan baru ini. Apakah saya lolos dari kesalahan? Atau apakah perilaku yang disengaja ini? Saya mencoba beberapa variasi pelarian lainnya, tetapi tidak berhasil less
.
Sebagai contoh, ini adalah screenshot dari sebuah env
perintah.
php -i
juga memiliki keluaran berwarna, tetapi hanya pada bagian variabel lingkungan.
man top
=\e[01;34mSYNOPSIS\e[00m
alih-alih mewarnai kata "SYNOPSIS".Seperti @Gilles tunjukkan dalam jawabannya, ini adalah perilaku yang diharapkan.
Izinkan saya menambahkan info pasangan.
LESS_TERMCAP_xx
menimpa kemampuan TERMCAP. Penggantian ini dikelola denganless
sendirinya di dalamscreen.c
dan nilainya hanya digunakan nanti seolah dikembalikan oleh pustaka TERMCAP. Itu berarti harus urutan mentah dari karakter kontrol.Akun saya tentang cara "memperbaiki" ini adalah untuk membungkus
less
dirinya sendirisumber
#!/bin/sh
(yang dash, dalam kasus saya)? Saya tidak tahu bagaimana cara memasukkanESC
karakter literal dengan vim.export LESS_TERMCAP_me="$(printf '\e[0m')"
. Sebenarnya jika Anda melihat jawaban @Gilles, ia mengklaimexport LESS_TERMCAP_me=$escape'[0m'
harus bekerja dengan/bin/sh
juga.