Beim Ausführen von vim in Console2 werden die Farben nicht richtig angezeigt

2047
Rivasa

Daher verwende ich momentan Console2 für meine Befehlszeilenelemente. Die Hintergrundshell ist nur das cmd.exevon Windows. Mein Problem ist, dass ich das Thema auf "twilight" in vim eingestellt habe, und es funktioniert perfekt in gVim, aber wenn ich es durch die Kommandozeile starte, sind alle Farben durcheinander. Sie bleiben auch dann defekt, wenn ich das standardmäßige Console2-Design oder sogar das Dämmerungsdesign für Console2 verwende.

Zur Veranschaulichung: Folgendes sollte passieren: Beim Ausführen von vim in Console2 werden die Farben nicht richtig angezeigt

Aber diese Farben bekomme ich stattdessen: Beim Ausführen von vim in Console2 werden die Farben nicht richtig angezeigt

Was ist los und wie kann ich es beheben?

2

1 Antwort auf die Frage

4
Ingo Karkat

Die Windows-Shell (und damit auch der Console2- Wrapper) ist auf 16 Farben beschränkt, während GVIM die 24-Bit-RGB-Palette verwenden kann. Daher gibt es selbst bei der Unterstützung von Colorscheme für Konsolen normalerweise Einschränkungen.

Das Beste, was Sie erreichen können, ist, die Farbpalette der Shell / Console2 an die (maximal 16) RGB-Farben anzupassen, die vom Dämmerungsfarbschema verwendet werden, und dann die Einträge ctermfg=und ctermbg=im Farbschema an die entsprechenden Indizes anzupassen .

Schritte

In der colors/twilight.vimfinden Sie folgende Definitionen:

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' 

Sie benötigen Console2 Farben in der neu zu definieren Farbmap denen (Versuch am besten ähnlich vorhandenen Farben übereinstimmen, oder ein anderes Programm Ausgabe sieht komisch).

Konsolenfarbeinstellungen

Ändern Sie dann das colors/twilight.vimSkript und fügen Sie die Farbterminals hinzu, zB drehen Sie dies

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

in (vorausgesetzt, Sie haben Farbe # 0 für s:darkgreyund # 10 für verwendet s:green)

exe 'hi String ctermfg=10 ctermbg=0 guifg='.s:green .' guibg='.s:darkgrey .' gui=none' 
Könntest du erklären, wie ich das machen könnte? Ich bin etwas verwirrt, wie ich das erreichen kann. Rivasa vor 11 Jahren 0
@Link: Ich habe die Schritte hinzugefügt; Beachten Sie, dass ich das nie explizit gemacht habe, aber ich bin überzeugt, dass es funktionieren sollte. Ingo Karkat vor 11 Jahren 0