web-dev-qa-db-ja.com

tmux、Vim、Solarized

前提

tmuxVimSolarizedの周りを閲覧して、多くの不満を見つけることができます256色と「ユーザーエクスペリエンス」。さて、私は反対の「問題」を抱えています。つまり、Vimは完全なSolarizedテーマでうまく機能しますonly intmux

バックグラウンド

Ubuntu端末とGuakeの配色を少し調整して調整してきましたが、私がtmuxを使用しているときに到達する完璧さ、つまりこれは常に意味します。私は今理解しようとしていますなぜこれは起こっています。

以下に2つのターミナルがあり、左側の1つだけが実行されていますVim(現在の.vimrcVimtmuxセッション内で実行中です。はっきりとわかるように、tmuxセッションでのみ、フォントは太字になります。これは、correct(またはそうではないですか) 。

enter image description here

質問

tmuxが太字フォントを使用できるのに、tmuxが実行されているターミナルでは使用できないのはなぜですか?それはバグですか、それとも機能ですか?

19
Atcold

短い答え

それはバグです。

完全な答え

「正しい」視覚化は左側にあるように見え、太字フォントではありませんレンダリングされます。私が理解できること( ここ は参照)について、太字の属性は、元々、8つの基本色のhighlightedバージョンを設定するために使用されていました。

歴史的に、太字のバージョンの8つのデフォルトANSI色と明るいバージョンの8つのデフォルト色の間には1対1の対応がありました。かつて、カラープログラムが太字のテキストの表示を要求したとき、端末エミュレーターは、テキストを何よりも明るいバージョンで表示する(そしてユーザーがそれを太字として解釈することを期待する)ことは、太字の書体。

基本的に、ここで起こっていることは、フルSolarizedパレットをorangepurpleおよびgreyのすべてのレベル、色はbold属性で呼び出され、次に、ANSIパレットのalternative8色を参照します。

Terminalはこれを正しく理解し、orangecomment greyを表示しますnormal組版、tmuxは不必要なboldフォントを追加します。結論として、左側は正しいですが、右側は正しくありません。

質問2

tmuxのボールドレンダリングをdisableする方法はありますか?
私はまだそれについていくつかの調査を行う必要があり、何かを見つけたらすぐにこの回答を更新します。

回答2

そして、ここに解決策があります! :)

tmuxを正しく動作させるには、これを呼び出して、256色対応の環境にいることを伝える必要があります。

TERM=xterm-256color /usr/bin/tmux

便宜上、これをaliasにすることができます(つまり、alias tmux="<the line above>"~/.bashrcに追加します)。

tmux interprets correctly the non-bold "bold-alternative" colours

tmuxtmux -2として呼び出し、tmuxを256色サポートで実行するように強制します(TERM環境変数を再定義する代わりに) 「太字の代替」8色を正しく解釈できないようにします(明るい色のバリエーションも太字の組版になります)。したがって、both256色の解釈太字でない「太字の代替」色。

23
Atcold