gnome-terminal、tmux、vimでソラリゼーションカラースキームを機能させるにはどうすればよいですか?


25

これについては多くの質問がありますが、それは非常に多くの変数があるためです。これが機能する前に、多くのサイトから指示をつなぎ合わせる必要がありました。

まず、gnome-terminalで16個のソラライズされた色の定義を簡単に設定できませんでした(順序/マッピングが正しくないことを理解するためだけに、手動/クリックでそれを行いました)。私が先に進んだことを修正したら...

それから、vim OK-ishで機能するソラリゼーションカラーを使用しましたが、特定のハイライト表示に奇妙な黒い背景が表示されました。それを修正したら、次に進みました...

それから、tmux内で実行するとvimがv。winkyになったことに気付きました。これは大いに議論されていますが、答えはほとんどありません(ほとんどがに設定TERMすることを言っていますxterm-256colors)。私も最終的にそれを修正しました。

ソラライズドは非常に素晴らしいパレットです(ただし、最も高いコントラストを好むため、最も暗いベース色を暗くし、最も明るくしましたが、キャリブレーションされた画面でtmuxの「白」がはるかに黄色すぎることがわかりました-典型的な未キャリブレーションのラップトップ画面では問題ありません」たいてい青すぎます!)、この質問とその答えを投稿して、学習結果を共有しています。


私はxterm-256color(GNOME端末ではない)、tmux、およびvimを使用しますが、この多くのフープの近くをジャンプする必要があることを覚えていません。私がしなければならなかった唯一のことは、端末をソラリゼーションすることでした(xtermはプロファイルの代わりにXResourcesを使用します) solarized.vim
jw013

回答:


24

ソラライズは非常に特定の色を与えます。標準の256色パレットでは、これらの色を実際に実現することはできません。これを実現する唯一の方法は、ターミナルエミュレータで正確な色を設定することです。アプリは標準の16色(8 + 8ブライト)を使用していると考えますが、これらはSolarizedパレットに正確にマッピングされています。

Gnomeターミナルは、パレットまたはプロファイルをエクスポート/インポートするための非常に簡単な方法を提供しませんが、次のbashスクリプトでそれを行うことができます。

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

Nb。ここでSolarizedの最も暗い色と最も明るい色をオーバーライドしました。コメントしたように、必要に応じてオリジナルを使用できます。

十分です 次に、Solarized vimカラーファイルをにインストールしてインストールします~.vim/colors/solarized.vim

これで、Vimにその配色を使用するように指示できますcolo solarized。しかし、これはまったく機能せず、16色のパレットを使用するようVimに指示する必要がありましたset t_Co=16。私は~/.vimrcファイルにそれらの両方を貼り付けました。

これでvimカラーは機能しましたが、tmux内で実行された場合は機能しません。

この次のビットは非常に紛らわしいです。ほとんどのアドバイスでは、TERMtmuxの外側をに設定することについて述べていますxterm-256colorsが、私がやるとtmuxは起動しませんでした。それも私を混乱させました:256色のパレットはお粗末な近似であるとソラライズされていませんか?まあ、それは混乱している、とにかく、それは機能していなかったので、私は別の方法が必要でした:

/tmp/fooを含むファイルを作成します。

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

次に、これをインストールします sudo tic /tmp/foo

最後に、tmux次のようにエイリアスします。

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

私は今取得正確端末では、vimのでは、とVIM-内部-tmuxの中に右の色を。Nb。この-2オプションはtmux256色のパレットを使用するように指示しますが、それはenv変数がそうでない場合にそれを伝えているように見えるので、本当に混乱しています...曲線になります


set t_Co=16私のためにトリックをしました。そのオプション構文を設定する前に、ハイライトはまったく機能しませんでした。
コラクトール14年

2
テキストエディターで16色を機能させるために必要な作業の量はおもしろいです。

注:Gnome Terminal 3.18.3(Ubuntu 16.04)ではこれは機能しなくなりました-色を受け入れないようで、vimのt_Co = 256を使用するとより良い結果が得られます。
artfulrobot

9

私もこのプロジェクトを見つけました:

https://github.com/sigurdga/gnome-terminal-colors-solarized

ヒントをありがとう:-)


1
はい、はい、はい!このスクリプトを使用してください。受け入れられた回答のすべてのハッキングを気にしないでください。これは「うまくいく」。
ロンドンロブ

素晴らしい!これははるかに優れています。ありがとうございました。
wchargin

一部のインストールでは動作します。一部では青すぎます。
ジョンマッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.