マルチプレクサ

マルチプレクサ

マルチプレクサ

フォローするtmuxで256色を使用:

  • 私は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

答え1

推測したように、setf()terminfo項目の前景色を設定する機能が正しくありません。 (ANSIエスケープを使用した前景色の設定)を使用する必要があります。xterm-256colorscreen-256colorsetaf

$ 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,

メモ:

  1. これを行う必要はありませんalias tmux='TERM=xterm-256color tmux'。起動時に端末エミュレータが正しい値を報告していることを確認してください。TERM=xterm-256color
  2. (1)がtrueの場合、そこでtoがtmux正しく設定されます。 Linuxコンソールで実行しても正しく設定されます。操作する必要がある状況があるかもしれませんが、通常はそうではありません。TERMscreen-256colorscreen.linux

答え2

私に役立つのは、.bashrcファイルに次の行を置くことです。

    if [ "x$DISPLAY" != "x" ]
    then
        export HAS_256_COLORS=yes
        alias tmux="tmux -2"
        if [ "$TERM" = "xterm" ]
        then
            export TERM=xterm-256color
        fi
    else
        if [ "$TERM" == "xterm" ] || [ "$TERM" == "xterm-256color" ]
        then
            export HAS_256_COLORS=yes
            alias tmux="tmux -2"
        fi
    fi

    if [ "$TERM" = "screen" ] && [ "$HAS_256_COLORS" = "yes" ]
    then
        export TERM=screen-256color
    fi

これが役立つ場合は教えてください。


このソリューションは以下に基づいています。郵便はがき

関連情報