web-dev-qa-db-ja.com

iTerm 2ZSHの色/テーマが正しく表示されない

OS X 10.11.4を実行しているMacをクリーンインストールしました。
iTerm 2をインストールし、oh-my-zshを使用するように設定しました。

ITermのテーマを設定しようとしています。 avitテーマを使おうとしています。

これは次のようになるはずです: enter image description here

しかし、私が得るものは:

enter image description here

Vimもこれによって傷つけられます、私は期待します:

enter image description here

私が得るもの:

enter image description here

これが私の好みです:

enter image description here

私はレポートターミナルタイプで遊んだことがありますが、他のものがさらにオフになっているので、これが最もうまく機能しているものです。

私の.zshrcは次のようになります: http://Pastebin.com/ixe72yjP
Pastebinにはkardanテーマと書かれていますが、どのテーマでも機能しません

[〜#〜]編集[〜#〜]
iTermの色がテーマで定義された色を上書きしているようです。これは予想される動作ですか?

8
Kao

ここでは、設定/テーマの2つのレイヤーが機能しています。

  • 端末または端末エミュレータ、あなたの場合iTerm2

    端末によっては、限られたカラーパレットのみがサポートされます。 「伝統的に」16色がありました:8ノーマルと8ライト/ブライト。それらには、それぞれコード0〜7および8〜15が割り当てられています。それらには名前もあり、コードnn+8は同じ名前を共有しています。

    • 0および8black
    • 1および9red
    • 2および10green
    • 3および11:黄色
    • 4および12:青
    • 5および13:マゼンタ
    • 6および14:シアン
    • 7および15:白

    名前は明確に定義されていますが、正確な色の値は、端末ごとのデフォルト設定でも大きく異なります。 (たとえば、ANSIエスケープコードのウィキペディアページの Colorsセクションを参照してください。 ) )。ほとんどの端末エミュレータでは、これらの16色をユーザーが自由に設定できます(iTerm設定のColorsタブを見てください)。

    多くの(ほとんどではないにしても)最新のターミナルエミュレーターは、上記の16色、6x6x6 RGBカラーキューブの216色、および32グレースケール色で構成される256色パレットをサポートしています。最初の16色を除いて、これらの色はほとんどのターミナルエミュレーターで同じように見えます(詳細については、 SO に関する質問に対する私の回答を参照してください)。

    24ビットトゥルーカラーのサポートも増えています。 this GistiTerm2によると、ベータビルドではすでにこれをサポートしています。 (これはfor a in {0..255}; printf "\x1b[48;2;255;${a};0m \x1b[0m"で確認できます。赤から黄色への滑らかなグラデーションが印刷されます。)

    要するに:ターミナル(iTerm2)テーマは、インデックスをトゥルーカラーRGBにマップするカラーパレットのみです。値。一部の端末(少なくともLinuxでは;OS XおよびiTerm2についてはわかりません特に)実際に切り替え可能なカラーテーマを実装します。

  • シェルまたはアプリケーション、あなたの場合zshoh-my-zsh構成フレームワークとvimを使用:

    24ビットTrue Colorはまだ広くサポートされていないため、テーマは通常、ターミナルパレットのインデックス番号または名前で色を設定します。例えば

    print -P '%F{yellow}yellow %F{2}green %1Fred %F{117}light blue' 
    

    print -Pは、プロンプトの場合と同じように文字列を解釈します。 %Fは前景色を変更します。

    ほとんどの端末は256色をサポートしていますが、(最初の)16色のみを使用するテーマはまだかなりあります。その理由はいくつかあります。

    • それは「どこでも」動作します(古いマシン、誤って構成された端末)。
    • ほとんどのターミナルエミュレータでは、ユーザーが好みに合わせて色を簡単に変更できます。
    • テーマによっては、256色の端末が広く利用可能になる前にさえ存在する場合があります。

    逆に256色を利用したテーマがないと言っているのではありません。あなたが選んだのはそれらの1つではないようです。

    簡単に言えば:端末(またはアプリケーション)テーマはカラーコードにのみ割り当てることができますnotトゥルーカラーRGB値。実際の色は端末の設定によって異なります。ターミナルで色が変更されると、ターミナルで実行されているすべてのアプリケーションに影響します。

したがって、期待される結果のスクリーンショットと実際に得られるものの違いは、端末の色設定の違いによるものです。これを解決するには、次のことができます。

  • スクリーンショットの色に合うようにiTerm2設定を変更します
  • 別のテーマを使用します。これにより、16〜256色のみが使用されます(大部分は修正されています)。
  • true Color対応ソフトウェア(例iTerm2ベータ版(まだリリースされていない場合は、すぐにリリースバージョンになる可能性があります)とneovim)を使用します。およびテーマ(neovimは、トゥルーカラーが有効になっている場合にGUI設定を使用しているようです)。 上記の要旨 にリストがあります。
5
Adaephon