Saya melihat warna - warna cantik ini di halaman manual yang dilihat dengan kurang ketika mengatur banyak variabel ini. Apa maksudnya, di mana dokumentasinya? Apakah ini ditafsirkan dengan kurang atau termcap?
Saya melihat warna - warna cantik ini di halaman manual yang dilihat dengan kurang ketika mengatur banyak variabel ini. Apa maksudnya, di mana dokumentasinya? Apakah ini ditafsirkan dengan kurang atau termcap?
Jawaban:
Termcap adalah perpustakaan yang kurang digunakan untuk mengakses terminal. Termcap sebagian besar sudah usang, telah digantikan oleh Terminfo , tetapi Terminfo menawarkan antarmuka kompatibilitas Termcap untuk aplikasi. Less is content dengan antarmuka Termcap dan menggunakannya.
Perpustakaan Termcap adalah deskripsi dari fasilitas terminal. Setiap fasilitas diidentifikasi dengan kode dua huruf (atau lebih umum dua karakter). Misalnya, hc
mengidentifikasi terminal hardcopy (yaitu printer, bukan layar); co
adalah jumlah kolom; md
mulai menampilkan teks tebal. Setiap kapabilitas memiliki nilai, yang bisa berupa boolean (as with hc
), integer (as with co
) atau string (as with md
). Banyak string adalah urutan melarikan diri yang dapat dikirim aplikasi ke terminal untuk mencapai efek tertentu.
Mengapa menghindari urutan? Karena antarmuka antara terminal dan aplikasi adalah aliran karakter (lebih tepatnya, satu aliran karakter di setiap arah: satu untuk input pengguna, satu untuk output untuk ditampilkan). Ketika suatu aplikasi menulis karakter ke terminal, biasanya ditampilkan. Beberapa karakter memiliki perilaku yang berbeda: mereka adalah karakter kontrol, yang melakukan hal-hal seperti memindahkan kursor, beralih atribut tampilan, dll. Ada lebih banyak perintah daripada karakter kontrol, sehingga sebagian besar perintah diakses oleh escape sequence, yang dimulai dengan karakter khusus (seringkali karakter pelarian, oleh karena itu namanya).
Misalnya, ketika Less ingin menampilkan beberapa teks tebal, ia mencari nilai md
kapabilitas. Ini adalah string, yang ditulis Less ke terminal. Terminal mengenali string ini sebagai urutan keluar, dan menyesuaikan status internalnya sehingga karakter selanjutnya akan ditampilkan dalam huruf tebal.
Pada masa awal terminal perangkat keras, berbagai merek memiliki urutan dan kemampuan keluar yang berbeda; basis data dan antarmuka Termcap diciptakan sehingga aplikasi tidak perlu tahu tentang setiap model terminal. Saat ini sebagian besar terminal emulator memiliki kemampuan yang sangat mirip, tetapi basis data Termcap atau Terminfo masih berguna untuk mengatasi perbedaan kecil.
The LESS_TERMCAP_*
variabel dapat diatur dalam lingkungan atau di .lesskey
berkas . Ini memberikan kurang dengan nilai-nilai alternatif untuk kemampuan Terminal. Ketika Less ingin menggunakan kapabilitas terminal, katakan alihkan ke huruf tebal, pertama-tama ia memeriksa apakah ada LESS_TERMCAP_md
variabel. Jika variabel ini ada, Less menggunakan nilainya sebagai urutan keluar untuk beralih ke cetak tebal. Jika tidak, ia menggunakan nilai dari basis data Termcap. Mekanisme ini memungkinkan pengguna untuk mengganti pengaturan basis data Termcap untuk Less.
Pengaturan yang paling berguna LESS_TERMCAP_*
adalah urutan melarikan diri. Anda dapat memetakan atribut ke atribut yang berbeda. Anda dapat menggunakan tput
perintah untuk mencari nilai kemampuan untuk terminal saat ini di sistem termcap atau terminfo basis data. Anda bisa menggunakan escape sequence secara langsung jika Anda tidak keberatan bergantung pada terminal. Misalnya, pengaturan ini memberi tahu Less untuk menampilkan dalam huruf tebal merah ketika diperintahkan untuk menampilkan dalam huruf tebal:
LESS_TERMCAP_md=$(tput md; tput AF 1)
atau jika tput
perintah Anda tidak mendukung nama Termcap:
LESS_TERMCAP_md=$(tput bold; tput setaf 1)
Man mengirimkan Less text dengan beberapa format yang sangat sederhana yang hanya dapat mengekspresikan huruf tebal dan miring. Selain itu, Less menggunakan berbagai kemampuan pemformatan untuk penggunaan internal, seperti untuk menyoroti hasil pencarian dan untuk menampilkan garis mode di bagian bawah. Berikut adalah beberapa urutan pelarian yang kurang digunakan (Saya hanya mencantumkan kemampuan yang cukup berguna untuk dipetakan kembali):
termcap terminfo
ks smkx make the keypad send commands
ke rmkx make the keypad send digits
vb flash emit visual bell
mb blink start blink
md bold start bold
me sgr0 turn off bold, blink and underline
so smso start standout (reverse video)
se rmso stop standout
us smul start underline
ue rmul stop underline
Untuk menampilkan keluaran berwarna, gunakan setaf
kapabilitas (atau AF
dengan Termcap).
The LESS_TERMCAP_*
pengaturan tidak disebutkan dalam LESS
dokumentasi. Referensi terbaik yang bisa saya tawarkan adalah jawaban saya di sini .
LESS_TERMCAP_*
env vars menggunakan tput
bukannya escape chars.
Jawaban Gilles luar biasa, tetapi ini membuat saya penasaran:
Termcap sebagian besar sudah usang, digantikan oleh Terminfo
Jika Termcap sudah usang, saya ingin beralih ke Terminfo
Saya juga ingin beralih dari Termcap karena saya menemukan bug. Misalnya Anda meletakkan variabel termcap di ~/.profile
atau yang serupa:
export LESS_TERMCAP_so=$(printf '\33[5;30;43m')
export LESS_TERMCAP_se=$(printf '\33[m')
Setelah itu jika Anda masuk set
, variabel Termcap mengacaukan output warna Anda.
Untuk beralih ke Terminfo, Anda dapat membuat file xterm-pretty.ti
:
xterm-pretty|xterm with pretty colors,
# exit standout mode
rmso=\e[m,
# begin standout mode
smso=\e[5;30;43m,
# similar terminal
use=xterm,
Kompilasi dan instal file:
tic xterm-pretty.ti
Tambahkan baris ke ~/.profile
atau serupa:
TERM=xterm-pretty