2011-02-08 19 views
5

Gerçekten .bashrc veya .zshrc dosyanızda içindeRenkli manalar ile tcsh?

export LESS_TERMCAP_mb=$'\E[01;31m' 
export LESS_TERMCAP_md=$'\E[01;31m' 
export LESS_TERMCAP_me=$'\E[0m' 
export LESS_TERMCAP_se=$'\E[0m' 
export LESS_TERMCAP_so=$'\E[01;44;33m' 
export LESS_TERMCAP_ue=$'\E[0m' 
export LESS_TERMCAP_us=$'\E[01;32m' 

elde edilir edebilirsiniz renkli man sayfalarını gibi. Sorum şu: Bu değişkenleri tcsh biçiminde nasıl dışa aktarabilirim? İş yerinde tcsh kullanmalı ve çalışamam. Bol miktarda varyasyon denedim, ama hiçbir şey işe yaramadı. Sadece setenv ve = "ile" ile ihracat değiştirerek hile yapmaz. Ama bir şekilde çalışmalı. Bu ihracat setiyle zsh'mden bir tcsh başlatırsam, tcsh'de de renkli man sayfalarının keyfini çıkarabilirim. Ama bu çirkin bir çözümdür.

+1

Büyük ihtimalle superuser.com'da bu soruyu sormak istiyorum – dotalchemy

cevap

4

Sorun, tcsh değişken adınızdaki kaçış sırasını yorumlamamasıdır; bu nedenle, ortam değişkeni, tcsh ile ayarlamaya çalıştığınızda \E bir literal ile biter. İşte bu biraz çirkin olsa, sen çıkış sıralarını yorumlamak için Bash kullanarak, bu sorunun üstesinden gelebilirsiniz tek yolu şudur:

% setenv LESS_TERMCAP_md `bash -c 'echo -en "\e[01;31m"'` 
% setenv LESS_TERMCAP_me `bash -c 'echo -en "\e[0m"'` 
% setenv LESS_TERMCAP_se `bash -c 'echo -en "\e[0m"'` 
% setenv LESS_TERMCAP_so `bash -c 'echo -en "\e[01;44;33m"'` 
% setenv LESS_TERMCAP_ue `bash -c 'echo -en "\e[0m"'` 
% setenv LESS_TERMCAP_us `bash -c 'echo -en "\e[01;32m"'` 
+0

Katılıyorum, biraz çirkin ama işe yarıyor. Yine de, sorunun açık olmasına izin veriyorum, belki yerel bir çözüm buluyoruz. – skorgon

+1

Bunu bash kullanmadan yapabilirsiniz (echo_style' ayarına bağlı olarak). –

6

tcsh özgü olan Bunu yapmanın yolu ile farklı türde taşınabilir kullanmaktır echotc yerleşik komutu:

setenv LESS_TERMCAP_mb `echotc md; echotc AF 1` 
setenv LESS_TERMCAP_md `echotc md; echotc AF 1` 
setenv LESS_TERMCAP_me `echotc me` 
setenv LESS_TERMCAP_se `echotc me` 
setenv LESS_TERMCAP_so `echotc md; echotc AF 3; echotc AB 4` 
setenv LESS_TERMCAP_ue `echotc me` 
setenv LESS_TERMCAP_us `echotc md; echotc AF 2` 

termcap kodları ve renk kodları için man 5 terminfo bakınız.

mdenter_bold_mode
me olduğunu exit_attribute_mode
AF, Bash bunu dış faydalı tput ve terminfo yeteneği adlarını kullanmak için, set_a_foreground
AB arada set_a_background

edilir olmasıdır:

export LESS_TERMCAP_mb=$(tput bold; tput setaf 1) 
export LESS_TERMCAP_md=$(tput bold; tput setaf 1) 
export LESS_TERMCAP_me=$(tput sgr0) 
export LESS_TERMCAP_se=$(tput sgr0) 
export LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) 
export LESS_TERMCAP_ue=$(tput sgr0) 
export LESS_TERMCAP_us=$(tput bold; tput setaf 2)