そのため、現在、コマンドラインに Console2 を使用していますが、バックグラウンドシェルはcmd.exe
ウィンドウから。私の問題は、vimでテーマを「twilight」に設定していて、gVimで完全に機能することですが、コマンドラインで実行すると、色がすべて台無しになります。デフォルトのConsole2テーマまたはConsole2のトワイライトテーマを使用しても、それらは壊れたままです。
説明のために:これは起こるべきことです:
しかし、これらは私が代わりに得ることになる色です:
何が問題で、どうすれば修正できますか?
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の色をそれらに再定義する必要があります(同様の既存の色と一致させようとすると、他のプログラム出力が奇妙に見えます)。
次に、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'