Terminal
讓 256 種顏色在終端多路復用器中工作
多路復用器
我遵循Getting 256 colors to work in tmux:
- 我
alias tmux='TERM=xterm-256color tmux'
有~/.bashrc
- 並且
set-option -g default-terminal "screen-256color"
也在~/.tmux.conf
在
konsole
:$ echo $TERM xterm
在
tmux
:$ echo $TERM screen-256color
仍然顏色不起作用
tmux
:boris@vasilisa:~$ PROMPT_GREEN=`tput setf 2` boris@vasilisa:~$ PROMPT_RED=`tput setf 4` boris@vasilisa:~$ PROMPT_BLACK=`tput setf 8` boris@vasilisa:~$ PS1='\[$PROMPT_RED\]\w\[$PROMPT_GREEN\]:\[$PROMPT_BLACK\] '
結果是黑白顏色提示。也沒有顏色
ls
。螢幕
我
force_color_prompt=yes
在~/.bashrc
. 仍然:boris@vasilisa:~$ PROMPT_GREEN=`tput setf 2` boris@vasilisa:~$ PROMPT_RED=`tput setf 4` boris@vasilisa:~$ PROMPT_BLACK=`tput setf 8` boris@vasilisa:~$ PS1='\[$PROMPT_RED\]\w\[$PROMPT_GREEN\]:\[$PROMPT_BLACK\] '
不會使提示變得豐富多彩。但與
tmux
–ls
列出帶有顏色的文件相反。所以
我想
tput setf
不應該與終端多路復用器一起使用?編輯
我必須更改
setf
為setaf
,並更改顏色程式碼:PROMPT_BLACK=`tput setaf 0` PROMPT_RED=`tput setaf 1` PROMPT_GREEN=`tput setaf 2` PS1='\[$PROMPT_RED\]\w\[$PROMPT_GREEN\]:\[$PROMPT_BLACK\] '
我不需要別名
tmux
,設置設置選項 -g 預設終端“screen-256color”
在
~/.tmux.conf
就足夠了。所以我把
# colorful prompt PROMPT_BLACK=`tput setaf 0` PROMPT_RED=`tput setaf 1` PROMPT_GREEN=`tput setaf 2` PS1='\[$PROMPT_RED\]\w\[$PROMPT_GREEN\]:\[$PROMPT_BLACK\] ' # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto --group-directories-first' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # man pages with color! 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' # enable colors: force_color_prompt=yes
在兩者中:
~/.bashrc
然後~/.bash_login
顏色在tmux
.
你猜對了,在( ) terminfo 條目
setf
的上下文中設置前景色的能力並不正確。您應該使用(使用 ANSI 轉義設置前景色)。xterm-256color``screen-256color``setaf
$ echo $TERM screen-256color $ infocmp -1 | grep setf $ infocmp -1 | grep setaf setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
筆記:
- 您不需要這樣做
alias tmux='TERM=xterm-256color tmux'
,請確保您的終端仿真器在啟動時報告正確的值TERM=xterm-256color
- 如果 (1) 為真,那麼
tmux
將正確設置您的TERM
toscreen-256color
在其中,例如,如果您在 linux 控制台上執行,它也會正確設置 toscreen.linux
,可能存在您需要操作它的情況,但通常不需要