Dunkelblaue farbe in vim oder ls ausgabe in linux

58

Ich habe ein Problem mit der dunkelblauen Farbe in vimoder lsAusgabe. Da ich schwarze Hintergrundfarbe verwende, sind dunkelblaue Wörter fast unsichtbar. Wie kann ich dieses Problem beheben?

Gilles 'SO - hör auf böse zu sein'
quelle
Mögliches Duplikat von Überschreiben des angezeigten Farbtons
Gilles 'SO - hör auf, böse zu sein'
1
Das andere, was Sie tun können, ist die Farben selbst zu ändern. Keine der Farben (auch nicht die "dunklen") darf auf schwarzem Hintergrund nicht lesbar sein. Wenn Sie angeben könnten, welches Terminal Sie verwenden, könnten weitere Informationen bereitgestellt werden, wenn die verknüpfte Frage diesbezüglich noch keine Hilfe bietet.
Random832
Dies scheint ein Problem mit einigen Displays oder Grafikkartenausgängen zu sein. Dieses Standardblau (das in der Linux-Konsole und in einigen Terminal-Emulatoren mindestens ungefähr gleich zu sein scheint) ist auf einigen Bildschirmen lesbar und auf anderen nicht lesbar.
NJSG

Antworten:

55

Sie können das Farbschema von vim mit der backgroundOption ändern . Verwenden

set background=dark

in Ihrer aktuellen Sitzung oder dauerhaft in Ihrem vimrc.

Der Ausgang von lswird mit konfiguriert /etc/DIR_COLORS. Weitere Informationen finden Sie in der Manpage . Die Einstellungen können mit einer ~/.dir_colors(unter Ubuntu: ~/.dircolors- siehe Eintrag in ~/.bashrc) Datei in Ihrem Home-Verzeichnis überschrieben werden .

Ein Eintrag wie

 DIR 01;36 

erzeugt mit Cyan einen besser lesbaren Hintergrund.

Echox
quelle
Für Bash-Neulinge: Nachdem Sie Ihre Datei (z. B. ~/.dircolors) wie hier beschrieben erstellt haben, müssen Sie nur source ~/.bashrcsehen, dass sie funktioniert. Danke für diese Antwort!
Marcus
26

Anstatt Anwendungen so zu konfigurieren, dass Blau auf Schwarz vermieden wird, empfehle ich, Ihr Terminal so zu konfigurieren, dass das Blau besser sichtbar wird. Die meisten Terminalemulatoren haben eine Einstellung dafür. In xterm gibt es eine X-Ressource:

XTerm.VT100.color4: CornflowerBlue

Suchen Sie in anderen Terminalemulatoren in der Konfigurationsdatei oder im Dialogfeld nach Farbeinstellungen oder Designs.

Es gibt eine gemeinsame Kontrollsequenz den Farbton mit einer Farbnummer von der Anwendung zugeordnet einzustellen: OSC 4 ; c ; spec BELwobei OSCist ESC ], cdie Farbzahl ist , und specist eine Farb spec wie #RGB.

printf %b '\e]4;4;#6495ed\a'  # set the blue shade to CornflowerBlue

Eine Änderung durch die Anwendung ist nur bis zum nächsten Zurücksetzen des Terminals wirksam. Wenn Sie diese Methode verwenden (nur empfohlen, wenn auf Ihrem Terminal kein Konfigurationsmechanismus vorhanden ist), hängen Sie die Escape-Sequenz für die Farbkonfiguration an die Rücksetzzeichenfolge Ihres Terminals an (termcap: r1string; terminfo: rs1string) , um die Änderung effektiv fortzusetzen .

Siehe auch Überschreiben des angezeigten Farbtons . Kann ich die Terminalfarben meines lokalen Computers so einstellen, dass sie die Farben des Computers verwenden, auf dem ich ssh verwende? .

Gilles 'SO - hör auf böse zu sein'
quelle
klang zunächst wie ein lahmer Vorschlag, aber wenn ich bedenke, dass ich nicht die Hälfte der dunklen Farben lesen kann und keines meiner Programme feste Hintergrundfarben verwendet, bei denen Dunkelheit vernünftig sein könnte, macht dies tatsächlich sehr viel Sinn!
M Conrad
Solarized ( ethanschoonover.com/solarized ) bietet schöne Farbschemata für verschiedene Terminalemulatoren und andere Programme.
David
10

Eine schnellere Methode zum Festlegen der lsVerzeichnisfarbe für Ihre Terminalsitzung:

1. Öffnen Sie Ihr Terminal und führen Sie den Befehl dircolors aus:

machines@box790 ~ $ dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
export LS_COLORS
machines@box790 ~ $ 

Es gibt Ihnen den Befehl, die Farben für ls festzulegen. Das 'di' steht für Verzeichnis. 34 ist das schlechte dunkelblau. 36 ist cyan. Fügen Sie es also ein und ändern Sie es in das Terminal.

2. Kopieren Sie das Ganze in das Terminal und nehmen Sie eine einzelne Änderung vor

Sie ändern die, di=01;34um di=01;36dies zu mögen:

machines@box790 ~ $ LS_COLORS='rs=0:di=01;36:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';

machines@box790 ~ $ export LS_COLORS

3. Dadurch werden die Verzeichnisfarben sofort auf Cyan gesetzt

do an 'ls' and see that directories are indeed cyan.

4. Machen Sie den obigen Schritt dauerhaft

Machen Sie es dauerhaft, indem Sie die obigen Befehle wie folgt am unteren Rand Ihres ~ / .bashrc platzieren:

LS_COLORS='rs=0:di=01;36:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
export LS_COLORS

Wenn Sie dies in Ihre ~ / .bashrc einfügen und (das Terminal neu starten oder source ~/.bashrc), sollten die Farben noch stimmen .

Eric Leschinski
quelle
2
Das Farbschema für Dircolors kann in einer für Menschen lesbaren Datei gespeichert und von bashrc mit eval " dircolors -b ~/.dir_colors" angewendet werden . Sehen Sie hier Beispiele für Farbschemata.
Alexei
jetzt meine Symlink ist die gleiche Farbe wie dir
ealeon
@ealeon Ah, es sieht so aus, als hätten Verzeichnisse diund Symlinks lndie gleiche Farbe wie 01;36. Wechseln Sie diese Farben, wenn Ihnen diese Unterscheidung wichtig ist. Dieses Farbschema ist das Standard-Farbschema, das ich gefunden habe.
Eric Leschinski
8

Wenn Sie vim mitteilen, dass Sie einen schwarzen Hintergrund (oder ein anderes dunkles Thema) verwenden, werden alle Farben aufgehellt, damit sie lesbar sind:

:set bg=dark
Caleb
quelle
1
eval `dircolors | sed -e 's/;34:/;36:/'`
Spongman
quelle