%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20LESS_TERMCAP_*%20%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
これは私のものです~/.bashrc
:
# ...unnecessary lines skipped...
# man colors
LESS_TERMCAP_mb=$(tput blink) # start bold
LESS_TERMCAP_md=$(tput setaf 2 ; tput bold) # start bold
LESS_TERMCAP_me=$(tput sgr0) # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput smso) # start standout (reverse video)
LESS_TERMCAP_se=$(tput rmso) # stop standout
LESS_TERMCAP_us=$(tput smul) # start underline
LESS_TERMCAP_ue=$(tput rmul) # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_so
export LESS_TERMCAP_se
export LESS_TERMCAP_us
export LESS_TERMCAP_ue
これは機能し、マニュアルページで色を見ることができます。ただし、行をからに移動して再度ログインすると、~/.bashrc
マニュアル~/.profile
ページの色が消えます。
tput
複数の制御記号よりもすっきりしているので、使いたい誘惑がします。
なぜtput
もう機能しないのです.profile
か?
答え1
tput
$TERM
環境変数で現在の端末エミュレータを知る必要があるため、機能しません。読み出し時に~\.profile
端末エミュレータが使用されないため、tput
出力は生成されません。
tput
キーで-T
使用する端末機能を指定できます。したがって、次のコードが機能します。
LESS_TERMCAP_mb=$(tput -T ansi blink) # start bold
LESS_TERMCAP_md=$(tput -T ansi setaf 2 ; tput -T ansi bold) # start bold
LESS_TERMCAP_me=$(tput -T ansi sgr0) # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput -T ansi smso) # start standout (reverse video)
LESS_TERMCAP_se=$(tput -T ansi rmso) # stop standout
LESS_TERMCAP_us=$(tput -T ansi smul) # start underline
LESS_TERMCAP_ue=$(tput -T ansi rmul) # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_se
export LESS_TERMCAP_so
export LESS_TERMCAP_ue
export LESS_TERMCAP_us