答え

答え

\E[4:2mtmux で二重下線のエスケープ シーケンスを機能させるには、何をする必要がありますか?

私のターミナル(mintty)ではtmuxの外で動作し、ターミナルのterminfoを調整して次のようにしました。terminfo 拡張tmux と互換性があり、tmux 内でトゥルーカラーとオーバーラインを有効にします。

しかし、拡張下線機能 (「Smulx」コード) を動作させることができません。私の terminfo は次のとおりです。

# Compile and add to database using 'tic -x <filename>'                      
#                                                                            
stanterm-256color|xterm with non-standard terminfo extensions,               
  use=xterm-256color,                                                        
  Tc,                                                                        
  Smol=\E[53m, Rmol=\E[55m,                                                  
# These underline extensions don't work in Tmux :(                           
# Smulx=\E[< WHAT GOES HERE? >m,  
# Smul2=\E[4:2m, does not work within tmux                                           

私の.tmux.conf唯一のものは最小限のものだけ

set -g default-terminal "tmux-256color"

私は byobu 経由で tmux 3.0 を実行しています (オーバーライン機能は非常に新しいため、tmux はソースからビルドされました)。何かアイデアはありますか?

ありがとう


答え

オプション1: tmux設定を調整する

収益set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'を増やす.tmux.conf

# .tmux.config
set -g default-terminal "tmux-256color"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'

# ... rest of your configuration

オプション2: terminfoを調整する

対応するtermcap文字列をSmulx=\E[4:%p1%dm,terminfoに追加しますソースファイルを作成し、 を使用してコンパイルしますtic -x <termfile>。前のオプションとは異なり、Smulxエントリには単一のコロンが必要であることに注意してください。

私は後者のオプションを選択しました。私の terminfo ソース ファイルは次のようになります。

# Compile and add to database using 'tic -x <filename>'
#
stanterm-256color|xterm with non-standard terminfo extensions,
  use=xterm-256color,
  Tc, 
  Smol=\E[53m, Rmol=\E[55m, 
  Smulx=\E[4:%p1%dm,

答え1

端末オーバーライドとして設定 ',*:Smulx=\E[4::%p1%dm'

関連情報