6

によって達成できる色付きのマンページが本当に好きです

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'

.bashrc または .zshrc で。私の質問は、これらの変数を tcsh でエクスポートするにはどうすればよいですか? 仕事で tcsh を使用する必要があり、動作させることができません。たくさんのバリエーションを試しましたが、何もうまくいきませんでした。export を setenv に、 = を " " に置き換えるだけではうまくいきません。しかし、それは何らかの形で機能するはずです。このエクスポート セットを使用して zsh から tcsh を起動すると、tcsh で色付きのマンページを楽しむこともできます。しかし、それは醜い回避策です。

4

2 に答える 2

6

tcshさまざまな端末タイプにネイティブで移植可能なこれを行う方法は、echotc組み込みコマンドを使用することです。

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`

コードとカラー コードについてman 5 terminfoは、を参照してください。termcap

mdですenter_bold_mode
meですexit_attribute_mode
AFですset_a_foreground
ABですset_a_background

ところで、Bash でこれを行うには、外部ユーティリティtputと terminfo 機能名を使用します。

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)
于 2011-02-08T10:16:26.027 に答える
5

問題は、tcsh が変数名のエスケープ シーケンスを解釈しないため、tcsh で環境変数\Eを設定しようとすると、環境変数にリテラルが含まれてしまうことです。これを回避する方法の 1 つは、Bash を使用してエスケープ シーケンスを解釈することです。

% 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"'`
于 2011-02-08T05:39:50.390 に答える