web-dev-qa-db-ja.com

tmuxの強調表示を修正

rxvt + tmuxをメイン端末として使用し始めたため、コンソールでの強調表示(リバースモード)がありません。ハイライトはイタリックフォントに置き換えられました-最初はかなりかっこよく見えます-ただし、イタリック以外の何千ものイタリックの単語を見つけることができませんlessで何かを検索してみます。

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

18
andras.tim

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

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

[修正1] terminfoエントリを置き換えて、逆+イタリックにする

(ユーザーごと!)

tmuxがイタリックをサポートしていることをアプリケーションに認識させ、目立つように適切なエスケープシーケンスを使用するには、変更された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.confで使用するようにtmuxに指示します。

set -g default-terminal "screen-it"

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

$ screen_terminfo="screen-256color"

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

urxvtがイタリックをまったく表示できない場合は、イタリック対応のフォントが有効になっていることを確認してください。たとえば、〜/ .Xdefaultsに追加します。

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

[修正2]斜体の制御文字を単に逆に置き換える

この端末オーバーライドを〜/ .tmux.confに追加します。

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'
11
andras.tim

より速い方法:

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

特別な手間をかけずに動作します(「端末」タイプが「画面」またはその派生物である必要があるというtmuxマニュアルの警告に引き続き注意してください)。

4
Steven

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

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


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

set -g default-terminal "tmux"

「tmux-256color」は使用しないでください。 (試してみてください、でも私にはうまくいきませんでした。)


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

export TERM="xterm-256color"
3
dylnmc