Ursprünglicher Beitrag
Ich habe ein Farbschema in meiner .vimrc konfiguriert, aber manchmal möchte ich es vollständig ausschalten, was bedeutet, dass ich möchte, dass Vim die Standard-Hintergrund- und Vordergrundfarben meines Terminals verwendet.
Mein Problem ist, dass ich nicht weiß, wie ich es einfach machen soll. Wenn ich :syntax off
Vim verwende, wird der größte Teil der Farbe ausgeschaltet, die Cursorlinienfarbe wird jedoch nicht entfernt. Die Hintergrundfarbe wird nicht auf die Standardfarbe des Terminals geändert.
Gibt es einen Befehl wie :nocolorscheme
oder vim -u NONE
nur für die Farben?
Mir ist bewusst, dass ich eine benutzerdefinierte .vimrc-Datei erstellen und mit der -u
Option laden kann . Ich suche jedoch nach einer einfacheren Lösung.
Hauptupdate
Da Sie mir verschiedene Befehle und Ansätze vorgeschlagen haben, habe ich beschlossen, Ihnen nach dem Aufrufen dieser Befehle einige Fotos des Bildschirms zu zeigen.
Terminalumgebung
Ich benutze st (1) Terminal von sauglos.org mit einer benutzerdefinierten config.h, so dass ich defaultfg = 10
(hellgrün) und defaultbg = 0
(schwarz) habe. Ich verwende die GNU / Linux-Version, mit der PocketC.HIP geliefert wird ( uname -a
Ergebnisse in Linux-Chip 4.3.0-ntc # 1 SMP Mi 11. Mai 21:57:30 UTC 2016 arm7l GNU / Linux ).
Screenshots
Kein Farbschema (das ist was ich will)
Dies ist, was ich erreichen möchte, ohne Vim damit beginnen zu müssen
vim -u NONE
.Normale Farben
Ich bekomme diese Farben, wenn:
- Normalerweise starte ich mein Vim (dies ist mein Standardfarbschema).
Ich rufe an
:set t_Co=0
.
Es ist erwähnenswert, dass es nichts ändert, wenn ich mein benutzerdefiniertes Monokai-Farbschema verwende. Es ändert das Erscheinungsbild im Standardfarbschema, wie Sie in 5 sehen können.Das Lustige ist, dass die Ausgabe von
:verbose set t_Co?
anschließend aufgerufen ist,t_Co=256
was darauf hinweist, dass sich buchstäblich nichts geändert hat.Ich beginne Vim mit
TERM=xterm vim
.
Standardfarben
Ich bekomme diese Farben, wenn:
- Ich rufe an
:colorscheme default
.
- Ich rufe an
Vim hat die meisten Farben entfernt, greift jedoch nicht auf die Standardeinstellungen des Terminals zurück
Ich bekomme es nach:
- Anrufen
:syntax off
.
- Anrufen
Fast kein Farbschema
Ich erhalte dies, nachdem ich diese 4 Befehle nacheinander ausgeführt habe:
" The effect is more visible on the default colorscheme " than on my molokai colorscheme. :set t_Co=0 :colorscheme default :hi clear
Wenn ich
:hi LineNr
danach renne, bekomme ich:LineNr XXX term=underline ctermfg=6 guifg=Brown
In einer C-Quelldatei unterstrichene Zeichenfolgen und Typen
Nach der Bewerbung
:set term=vt100
.In Vim neu gezeichnet
Vim ist nach dem Aufruf kaputt gegangen: set term = builtin_dumb (Video)Nach dem Anwenden
:set term=builtin_dumb
vergisst mein Vim, wie man Linien neu zeichnet, wenn ich mich mit jund bewege k.Untersuchen Sie die Standardeinstellungen meines Temrminals
Das bekomme ich, nachdem ich
echo -e " \033[0;4mfoo\033[0;0mbar"
in meinem Terminal gelaufen bin.
quelle
vim -u NONE
des Terminals übernimmt. Vielen Dank für den Hinweis.:set t_Co=0
, unmittelbar gefolgt von:verbose set t_Co?
Was ist t_Co eingestellt? (Ich frage mich, ob es irgendwie nicht richtig eingestellt wird: Ich vermute nur, dass Sie möglicherweise einen automatischen Befehl haben, der es zurücksetzt, oder es gibt einen Fehler, der dazu führt, dass es nicht eingestellt wird.):set t_Co=0
es nicht funktioniert, wenn das Farbschema auf Monokai eingestellt ist.Antworten:
Farben vollständig deaktivieren
Wenn Sie möchten , Vim keine Farben bei benutzen alle , brauchen Sie nur den Befehl auszuführen:
Dies teilt Vim mit, dass es in einem Terminal ausgeführt wird, das keine Farben unterstützt. Daher gibt Vim nur Schwarzweißtext aus (der dann von Ihrem Terminal in den Standardfarben angezeigt wird).
Beachten Sie jedoch, dass nach dem Ändern der
t_Co
Einstellung das aktuelle Farbschema neu geladen wird (damit die von ihm definierten Farben entsprechend geändert werden können). Das von Ihnen verwendete "Monokai" -Farbschema beginnt mit der Linie:set t_Co=256
und setzt die Option sofort zurück.Ich würde argumentieren, dass dies ein falsches Verhalten ist und als Fehler beim Betreuer dieses Farbschemas abgelegt werden sollte. Natürlich könnten sie anderer Meinung sein und argumentieren, dass es keinen Sinn macht, es in einem Terminal zu verwenden, das dies nicht unterstützt, da ihr Farbschema 256 Farben erfordert (und dass diese Zeile Monokai hilft, korrekt zu arbeiten, wenn Vim ausgeführt wird ein falsch konfiguriertes Terminal).
In beiden Fällen müssen Sie zuerst das Farbschema von Monokai entfernen, bevor Sie die
t_Co
Option festlegen , wie Sie festgestellt haben.Beschränken der Farben auf die in der Shell häufig verwendeten Farben
Die Farben, die Vim für seine Ausgabe verwendet, können mit dem
:highlight
Befehl definiert und angezeigt werden . Durch Ausführen:highlight clear
werden diese auf die Standardeinstellungen von Vim zurückgesetzt (praktisch dasselbe wie Ausführen:colorscheme defaults
).Auszug aus
:help :highlight
:(Hinweis: Beachten Sie den Kommentar zur
'background'
Option.)Wenn dies nicht die gewünschte Ausgabe erzeugt, haben Sie mehrere Möglichkeiten.
Wenn Sie Vim derzeit im 256-Farben-Modus verwenden, können Sie stattdessen den 16-Farben-Modus verwenden, da dies dazu führen würde, dass Vim aus der Farbpalette auswählt, die Sie in der Shell mit größerer Wahrscheinlichkeit sehen.
Der saubere Weg, dies zu tun, besteht darin, Vim mit einem anderen $ TERM-Variablensatz auszuführen. Der Wert, den Sie verwenden müssen, hängt von Ihrem Terminal ab. Wenn dies
$TERM
jedoch normalerweisexterm-256color
der Fall ist , reicht es aus, vim mit dem folgenden Befehl auszuführen:(Sie können einen ähnlichen Effekt auch auf hackigere Weise erzielen, indem Sie die Terminaloption direkt in vim einstellen :
:set t_Co=16
.)Alternativ können Sie die Farben dieser Elemente mit dem
:highlight
Befehl ändern, wenn nur eine Handvoll bestimmter Elemente falsch gefärbt sind . zB um die Hintergrundfarbe von der Cursorzeile zu entfernen:Wenn Sie nicht sicher sind, welche Gruppe Sie ändern müssen, können Sie entweder einfach
:highlight
ohne Argumente ausführen oder Folgendes ausführen::so $VIMRUNTIME/syntax/hitest.vim
Öffnen Sie ein neues Fenster, in dem alle aktuellen Hervorhebungen angezeigt werden.In den Abschnitten am Ende dieser Antwort finden Sie Tipps, wie Sie dies mit einem benutzerdefinierten Befehl oder durch Einrichten eines neuen Farbschemas schnell erledigen können.
Hintergrundfarbenlöschung (BCE)
Wenn Sie ein Problem mit dem Hintergrund haben, der anders aussieht, wenn er Text enthält, tritt möglicherweise BCE (Background Color Erase) auf. Sie können dies mit dem folgenden Befehl deaktivieren:
Hier gibt es eine spezielle Frage , und das Problem wird in diesem Blog-Beitrag ausführlicher behandelt .
Update (Überschreiben von Unterstreichungen):
Aus unserer Diskussion in den Kommentaren geht hervor, dass eines der Probleme darin besteht, dass Ihr Terminal unterstrichenen Text in einer anderen Farbe anzeigt. Sie haben zwei Möglichkeiten, um dies zu umgehen:
Korrigieren Sie Ihre Terminalkonfiguration so, dass unterstrichener Text in derselben Farbe angezeigt wird! Ich kann dir dabei nicht helfen.
Schalten Sie die Unterstreichung in Vim aus. Sie können dies mit dem folgenden
:highlight
Befehl tun : ZB werden im Folgenden alle Farben / Formatierungen aus den Zeilennummern entfernt:Ausschalten der Farben mit einem Befehl
Um dies schnell zu erledigen, können Sie einen Befehl einrichten, um alle erforderlichen Schritte auf einmal auszuführen:
Neues erstellen
colorscheme
Alternativ können Sie ein neues Farbschema "NoColorsNoUnderlines" erstellen, in dem Sie die Unterstreichungen entsprechend deaktivieren. Führen Sie dazu den folgenden Befehl aus, um Anweisungen dazu zu erhalten:
Sie können dieses Schwarz-Weiß-Farbschema als Ausgangspunkt verwenden.
quelle
colorscheme default
. Zusammensyntax off
ist es fast das, was ich mir wünsche. Abgesehen davon, dass (1) die Cursorzeile immer noch die aktuelle Zeile unterstreicht und sie weiß färbt; (2) Die Zeilennummern sind noch farbig.:set t_Co=0
werde das für dich tun.vim -u NONE
Beginnt mit dem Hintergrund und dem Vordergrund des Terminals, lädt jedoch kein vimrc. Ich frage mich, was ich deaktivieren soll, um diesen Effekt zu erzielen.set t_Co=0
bricht bestimmte Vim-Funktionen ab, wie z. B.^X^O
die Hervorhebung grundlegender Begriffe (fett, unterstrichen).Sie könnten so etwas wie Nofrils verwenden und die anpassen
hi Normal cterm=none ctermfg=none ctermbg=none
. Davon abgesehen sehe ich keinen anderen Weg, ohne Ihre Vim-Erfahrung durcheinander zu bringen.quelle