tmuxの強調表示を修正


18

メイン端末としてurxvt + tmuxを使用し始めたため、コンソールで強調表示(反転モード)ができません。ハイライトはイタリック体に置き換えられました-最初はかなりクールに見えますが、less

端末タイプに設定されている間これが正常に動作しているxterm*(例えば持つプロファイルset -g default-terminal "xterm-color".tmux.conf)。ただし、一部のショートカットは機能せず、アプリは端末の適切なジオメトリを取得できません...この場合。

回答:


11

私はtmuxのページでそれに関する情報と解決策を見つけました:

Screenのterminfo記述にはイタリックモードがなく、代わりに目立つモードがありますが、イタリックに使用するのと同じエスケープシーケンスをurxvt使用しています。これはvim、斜体を検索するアプリケーション(など)がそれを見つけず、代わりに反転する可能性があることを意味します。

[修正1] terminfoエントリを置き換え、逆+イタリック体を取得

(ユーザーごと!)

そのアプリケーションに認識させるためにtmux支援のイタリック体と傑出のための適切なエスケープシーケンスを使用するには、新しい作成する必要がありますのterminfo変更されたファイルsgrsmsormsositmおよびritmエントリを:

$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen"
$ infocmp "$screen_terminfo" | sed \
  -e 's/^screen[^|]*|[^,]*,/screen-it|screen with italics support,/' \
  -e 's/%?%p1%t;3%/%?%p1%t;7%/' \
  -e 's/smso=[^,]*,/smso=\\E[7m,/' \
  -e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
  -e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo

そして、tmuxに〜/ .tmux.confで使用するように指示します。

set -g default-terminal "screen-it"

端末が256色をサポートしている場合は、次を使用します。

$ screen_terminfo="screen-256color"

「スクリーン」の代わりに。詳細については、256色のサポートに関するFAQエントリを参照してください。tmuxは、イタリック体をサポートしていない端末でもリバースビデオを表示することに注意してください。

あなたの場合はurxvt缶がすべてで斜体を表示していない、あなたができるフォントが有効になってイタリック体を持っているが、例えば、に追加します〜/ .Xdefaultsに

urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true

[修正2]イタリック体の制御文字を単に逆に置き換える

〜/ .tmux.confにこのターミナルオーバーライドを追加します。

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'

2
修正1は機能しているように見えますが、2015年です。これは本当に難しいのでしょうか。
user1338062

残念ながら、私はこの問題のより良い解決策を見つけることができません+ tmuxメーリングリストでこれを見つけたときに検索を停止しました... :(
andras.tim

4
さて、tmux FAQによれば、tmux 2.1は動作を修正するはずです。したがって、これは一時的にのみ必要だと思います。私は個人的にはOPが言ったことをしただけで、私default-terminalに決めましたxterm
user1338062

時々これはあまり良くありません。たとえば、PuTTYとの互換性が必要な場合はxtermscreeenバリアントのみを使用できます。
andras.tim

1
修正1はうまくdircolorsいきましたが、ソラリゼーションが消えました。TERM screen-itの端末リストに追加することで修正できました~/.dircolors
ベンジャミンW.

4

より速い方法:

set -g terminal-overrides "screen.xterm-new"

それ以上の魔法なしで動作します(さらに、端末タイプが「スクリーン」またはその派生物である必要があることに関するtmuxマニュアルの警告に注意します)。


1
私にとって完璧にwatch -n10 -d COMMAND args..機能します。たとえば、変更をすぐに検出できます(空白など!斜体の空白をどのように行いますか?)。これは受け入れられた答えだと思います。注:端末がすでにオープンしている、使用TERM=screen.xterm-new; export TERM
ティノ

2

Arch Linuxでurxvtを実行します。オペの答えは私を助けませんでした。これは私を助けました:

https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383


それを検索しitalicて実行します。次に、これをtmux configに入れます

set -g default-terminal "tmux"

「tmux-256color」を使用しないでください。(試してみよう、と思うが、うまくいかなかった。)


最後に、これをrc(.zshrc、.bashrcなど)に追加します。

export TERM="xterm-256color"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.