Solarizedを使用したiTerm2のvimの色が正しくない


84

ターミナルvim(非GUI)とソラリゼーションカラースキームでiTerm2に奇妙な問題があります。まず、暗いソーラーカラースキームを使用するようにiTerm2を設定しました。

私はvimにもsolarizedを使用しています。.vimrcに次の行があります

set background=dark
colorscheme solarized

ターミナルでは、配色が正しくないように見えます。 コンソールvim

参考までに、これはMacVim(gui vim)での外観です。 gui vim

コンソールvimで色が正しく表示されるようにするには、iTermまたは.vimrcで何を変更する必要がありますか?

回答:


118

確認すべき点がいくつかあります。

  1. iTerm2の[設定]-> [プロファイル]-> [ターミナル]の[ターミナルエミュレーション]で、[レポートターミナルタイプ:]がxterm-256colorに設定されています。

  2. .vimrcには、256色を使用していることを確認するために設定できるオプションがいくつかあります。

    set background=dark
    " solarized options 
    let g:solarized_visibility = "high"
    let g:solarized_contrast = "high"
    colorscheme solarized
    
    そして、そのうちの1つは機能するはずですが、最初に#1です。

ただし、Snow Leopardに組み込まれているデフォルトのvimを使用している場合は、256色をサポートするように構築されていないため、機能しません。Lionの組み込みバージョンにはあると思います。

編集:この回答に関するいくつかのコメントに基づいてlet g:solarized_termcolors = 256.vimrc上記の例から行を削除しました。一部の人にとっては問題になる可能性があるようです。別の人は、線を追加let g:solarized_termcolors = 16するとカラー表示の問題が修正されたと言います。あなた自身のマイレージは異なる場合があります。

2番目の編集:ソーラー化されたカラーパレットをiTerm2にロードした場合は、そうする必要がありlet g:solarized_termcolors=16ます。ソラリゼーションパレットをiTerm2カラープリセットとして使用しlet g:solarized_termcolors=256いない場合のみ。


13
実際、「let g:solarized_termcolors = 256」が、私にとって太陽化された表示が正しくない原因でした。gitレポジトリgithub.com/vim-scripts/Solarized)の「ターミナルユーザーへの重要な注意:」に従って、「g:solarized_termcolors = 16」にする必要があります。
サイパーチャード2012年

3
端末でソーラーカラースキームを使用している場合、16のANSIカラーがソーラーカラーに設定されlet g:solarized_termcolors=16ます。この場合、を設定します。256を使用すると近くになりますが、背景は深海の青ではなく灰色になります。
パーカーセルバート2012

2
ように思える256私の代わりに、ライオンのダークブルーのグレーの背景を与えるが16、私のvimrcからその変数を省略することとまったく同じに見えます。まあ、ダークグレーは私が以前に得ていた本当に明るいグレーよりも優れています。
スタイフル

1
@SaiPerchardコメントを回答に追加する必要があります。私にとって、これは間違った背景色を修正したものでした。
Marten Sytema

1
私のために機能しませんでした:stackoverflow.com/a/12969298/1945990はしかし機能しました。ITerm、solarizedテーマとvimsolarizedテーマ。
マイクW

91

上記の答えは私にはうまくいきませんでした。

OS X10.7.4のvim7.3でiTerm2を使用しています。

上記の解決策がうまくいかなかった場合は、これを試してください

syntax on
set background=dark
let g:solarized_termtrans = 1
colorscheme solarized

更新:ジム・スチュワートによると、これはキティでも機能します。


ここで私も同じです...その解決策をありがとう!
freitass 2012年

2
Windows 7でKiTTY(PuTTY派生物)を使用let g:solarized_termtrans = 1していて、空白行の背景色が灰色であるのに、テキストのある行の背景色がコンテンツの後に黒であるという問題を修正しました。
ジムスチュワート

彼らは黒人ではありません:(
Setheron 2013

他の配色を使用している場合はhi Normal ctermbg=NONE、それが本質的termtrans
Achal Dave 2013

1
これは作業に最も近く、背景色を正しく設定しますが、カーソルライン、カラー列、行番号列はすべて黒の背景になっています。なぜこれまで簡単なことはありません!
Ian Vaughan

13

https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

Solarizedパッケージ(https://github.com/altercation/solarized)をダウンロードし、指示に従います。

iTerm 2を開き、[設定]を開き、設定ツールバーの[プロファイル](以前のアドレス、以前はブックマーク)アイコンをクリックして、[色]タブを選択します。「プリセットのロード」をクリックし、「インポート...」を選択します。ソラライズドライトまたはダークテーマファイルを選択します。

これで、SolarizedカラープリセットがiTerm 2にロードされましたが、まだ適用されていません。それらを適用するには、左側のプロファイルリストウィンドウから既存のプロファイルを選択するか、新しいプロファイルを作成します。次に、[プリセットの読み込み]ドロップダウンから[ソラライズドダーク]または[ソラライズドライト]プリセットを選択します。

====================================

または:

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

.vimrcを変更する

暗いテーマ:

syntax enable
set background=dark
colorscheme solarized

syntax enable
set background=light
colorscheme solarized

2
前の答えのどれも私の問題を解決しませんが、これは解決します。私に欠けていたのはカラープリセットだったことがわかりました。
Sophia Feng

10

これは、iTerm2のOSX10.9.1とターミナルで機能しました。私が犯した間違いの1つは、termtransとtermcolorsの設定の前にcolorscheme宣言を配置することでした(そして、それを機能させるには、これらの両方が必要でした)。他の人が言っているように、私は自分の端末タイプをxterm-256colorに設定しました

if !has("gui_running")
    let g:solarized_termtrans=1
    let g:solarized_termcolors=256
endif

colorscheme solarized
set background=dark

7

OSX 10.11.6、iTerm2ビルド3.0.12でも同じ問題に苦労しました。

これが私の修正です。

  1. .vimrc

    構文enableset background = darkcolorschemesolarized

  2. レポート端末タイプをに設定しxterm-256colorます。

ここに画像の説明を入力してください

  1. プロファイルのカラープリセットをSolarizedDarkに設定します

ここに画像の説明を入力してください


これが、さまざまなカラープリセットを試すために必要な手がかりだったため、賛成票を投じてください。これにより、256を超えるカラーエスケープコードがMacとLinuxで異なる方法で処理されることがわかりました。Macでは、256を超える色は、選択された8つのANSI色のいずれかに平坦化されるよりも変更されているように見えましたが、Linuxのwherasは、ラップアラウンドして色を選択するモジュラスを実行しているようです。
EricLeschinski18年

6

作成者から:http//ethanschoonover.com/solarized/vim-colors-solarized

ターミナルユーザーへの重要な注意:

ターミナルモードでSolarizedを使用する場合(つまり、gvimやmacvimなどのGUIバージョンでは使用しない場合)、ターミナルエミュレータのカラースキームをSolarizedパレットを使用するように設定することを検討してください。Solarizedホームページから入手できるSolarizedの公式ダウンロードに、人気のあるターミナルエミュレーターのパレットとXdefaultsを含めました。これらの色なしでSolarizedを使用する場合、Solarizedは、そのカラースキームを制限された256ターミナルパレットと互換性のあるセットに劣化させるように指示する必要があります(一方、ターミナルの16のansiカラー値を使用することにより、Solarizedの正しい特定の値を設定できますパレット)。

カスタムターミナルカラーを使用する場合は、solarized.vimがすぐに使用できるはずです。256色をサポートする端末エミュレーターを使用していて、カスタムのソーラー化端末色を使用したくない場合は、劣化した256色スキームを使用する必要があります。これを行うには、colorschemソラリゼーションラインの前に次のラインを追加するだけです。

let g:solarized_termcolors=256

繰り返しになりますが、手動で、またはインポート可能な多くの端末スキームの1つを介して、端末の色をソラリゼーション値に変更することをお勧めします。


これが、iTerm2でGUI以外のMacVimでソラリゼーションされた色を使用できるようにする唯一の方法でした。
アーロントリボウ2016年

4

ビルターナーの答えは機能しますが、色をMacVimに正確に一致させる方法があります。Solarizedは、他のターミナルエミュレーターの中でも特にiTerm2をサポートしています。

  1. 行くiterm2-色-solarized githubのページ
  2. 「インストール」の指示に従ってください
  3. .vimrcに次の行があることを確認してください colorscheme solarized

これにより、iTerm2のvimの色がGUIエディターの場合とまったく同じになるように設定されます。


答えも示唆しているように、ビル・ターナーの答えも正しいですが、これはsolarizedテーマを設定するための公式の(したがって正しい)方法です。

1

この問題を解決する簡単な方法は次のとおりです。

vim-color-solarizedのcolorsdirには、「solarozed.vim」という名前のarquiveが存在します。

このファイルを開いて検索します:
exe "let s:bg_back = '" .s:vmode。 "bg ="。s:back。 "'"

置換先:
exe "let s:bg_back = '" .s:vmode。 "bg ="。s:none。 "'"


1

私のようにまだ問題がある場合は、iterm2ソラリゼーションカラープロファイルをインストールしました。vim-color-solarizedのインストールをvimバンドルに、指示に従う必要はなく、互換性がありませんでした。上記のスクリーンキャプチャのように、面白いハイライトの問題がありました。

学んだ教訓:両方を行わないでください。


0

私は以前の提案をすべて試しました。set t_Co=256.vimrcに追加したところ、修正されました。tmuxエイリアスを作成したり、設定ファイルを変更したりする必要はありませんでした。


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