web-dev-qa-db-ja.com

シロアリとtmuxを使用すると、端末の色が正しく表示されません

私が使用しているターミナルはtermiteで、とても良いですが、tmuxを使用すると、vimのcolorschemesとターミナル自体の一部の色にも問題があります。それは次のように起こります: Right = no tmux; Left = tmux スクリーンショットでわかるように、tmuxでnvimまたはvimを開くと、左側のケースでカラースキームが変更されます。これは、テストしたすべてのカラースキームで発生します(約15または20)。シロアリを入力した直後にコマンドTERM=xterm-256color tmuxを実行すると、nvim/vim(.vimrcをシミュレートしたので、init.vimと同じです)のカラースキームが魅力のように機能することを確認しました。私はi3-gapsを使用しているので、バインディングを設定することにしました$ mod + Returnそのようにシロアリを開きます:

  • bindsym $mod+Return exec termite -e 'TERM=xterm-256color tmux'

動作するはずですが、キーを押すと画面が点滅するだけで何も起こりません。

私が試したことは次のとおりです。

  • 〜/ .tmux.conf.localとmy 。vimrc$TERM;の両方で、xterm-256color, screen-256color, termite-256colorをさまざまな値に設定します。

  • xfce-terminalgnome-terminalなど、他のターミナルエミュレータでも同じことをテストしました。どちらも正常に動作し、色が正しく表示されます。

  • 私の設定。vimrc

    `if &term == "screen"` 
    
        `set t_Co=256`
    
    `endif`
    
  • Tmuxをtmux -2で開始します。

  • 私のエイリアシング。zshrc

    tmux="tmux -2";
    
    tmux="TERM=xterm-256color tmux" (screen blinks and nothing happens);
    
    termite="termite --exec "TERM=xterm-256color tmux";
    
    termite="termite -e "TERM=xterm-256color tmux".
    

編集:tmuxの内側と外側の$ TERMは引き続きターミナルと同じです。 tmuxの内部と外部でecho $TERMすると、同じものが出力されます。これはシロアリで起こりました、他の端末でそれをテストしなければなりません。

1
Erick César

したがって、誰かがまだ修正を見つけることに興味がある場合は、それでも同じ問題を抱えている人のために:私はそれをあまり何もせずにうまく機能させることができました。

私はこの問題を忘れていて、TelegramのLinuxグループでそれについて尋ねることを決心するまで、長い間tmuxの使用をやめ、クールな若者がこの問題を手伝ってくれました。 sxhkd設定ファイルでこれに到達しました。

# Open alacritty with tmux
super + shift + Return
    alacritty -e $Shell -i -c tmux &

ターミナルをAllacrityに変更しました。これはGPU-based term、より速く、より簡単に設定できますが、公平を期すために、それは関係ないと思います。正直なところ、Alacrittyの色に問題があったことを覚えていません。当時、ベータ版か何かのように使用していなかったからです...

これをwmのrcのキーバインディングに追加することも、シェルrcのエイリアスを作成することもできます。

また、前に述べたように:

$ TERM変数を.rcファイルと.tmux.confファイルで同じになるように設定する必要があります。何かが間違っているかどうかを知るには、neovim内で:checkhealthコマンドを使用することをお勧めします。

色はtmuxの内外で同じように動作するようになりました:)

sxhkd構成のファイルは、私のGitHubの 6 行にあります。

ネクロポスティングが良くないことは知っていますが、この問題が数ヶ月間私を悩ませていたので、私はそれをしなければなりませんでした、そして私がさまざまなフォーラムやFAQでウェブを検索したにもかかわらず、解決策を見つけるのは非常に困難でした、読んでください問題のソフトウェアに関するドキュメントで、関連するものが見つかりませんでした。

0
Erick César

同様の問題がある場合、または同じ問題がある場合は、$ TERM変数を.rcファイルと.tmux.confファイルで同じになるように設定する必要があります。何か問題があるかどうかを知るには、neovim内で:checkhealthコマンドを使用することをお勧めします。

1
Erick César

~/.tmux.confファイルでこれらの構成を使用していますが、次の場合にも機能するはずです。

set -g terminal-overrides ',xterm-256color:Tc'
set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'
0
Felipe Sousa