web-dev-qa-db-ja.com

Console2でvimを実行すると、色が正しく表示されません

そのため、現在、コマンドラインに Console2 を使用していますが、バックグラウンドシェルはcmd.exeウィンドウから。私の問題は、vimでテーマを「twilight」に設定していて、gVimで完全に機能することですが、コマンドラインで実行すると、色がすべて台無しになります。デフォルトのConsole2テーマまたはConsole2のトワイライトテーマを使用しても、それらは壊れたままです。

説明のために:これは起こるべきことです: enter image description here

しかし、これらは私が代わりに得ることになる色です: enter image description here

何が問題で、どうすれば修正できますか?

2
Rivasa

Windowsシェル(およびそれとともに、Console2ラッパー)は16色に制限されますが、GVIMは24色すべてを使用できます-ビットRGBパレット。したがって、コンソールのカラースキームがサポートされている場合でも、通常は制限があります。

達成できる最善の方法は、シェル/ Console2のカラーパレットをtwilightカラースキームで使用される(最大16)RGBカラーに適合させてから、対応するインデックスへの配色のctermfg=およびctermbg=エントリ。

ステップ

colors/twilight.vimには、次の定義があります。

let s:grey_blue = '#8a9597'
let s:light_grey_blue = '#a0a8b0'
let s:dark_grey_blue = '#34383c'
let s:mid_grey_blue = '#64686c'
let s:beige = '#ceb67f'
let s:light_orange = '#ebc471'
let s:yellow = '#e3d796'
let s:Violet = '#a999ac'
let s:green = '#a2a96f'
let s:lightgreen = '#c2c98f'
let s:red = '#d08356'
let s:cyan = '#74dad9'
let s:darkgrey = '#1a1a1a'
let s:grey = '#303030'
let s:lightgrey = '#605958'
let s:white = '#fffedc'

カラーマップのConsole2の色をそれらに再定義する必要があります(同様の既存の色と一致させようとすると、他のプログラム出力が奇妙に見えます)。

Console color settings

次に、colors/twilight.vimスクリプトを変更して、カラーターミナルのものを追加します。これを回します

exe 'hi String         guifg='.s:green             .' guibg='.s:darkgrey        .' gui=none'

into(s:darkgreyに色#0を使用し、s:greenに色#10を使用したと仮定)

exe 'hi String         ctermfg=10 ctermbg=0 guifg='.s:green             .' guibg='.s:darkgrey        .' gui=none'
4
Ingo Karkat