Vim: So ändern Sie die Markierungsfarbe für Suchtreffer und die Auswahl von Quickfixes

122

Ich verwende das Wüstenfarbschema, bei dem weißer Text auf orangefarbenem Hintergrund zum Hervorheben von Suchtreffern verwendet wird. Das gleiche Muster wird für den ausgewählten Eintrag im Quickfix-Fenster verwendet.

Weiß auf Orange ist nicht sehr gut lesbar. Wie ändere ich das in .vimrc?

Bearbeiten: Danke für die schnelle Antwort, für das Wüstenschema verwende ich jetzt die folgende Modifikation des Suchhighlights:

highlight Search guibg='Purple' guifg='NONE'

Lila ist visuell recht einfach zu erkennen und wird meiner Meinung nach nicht für die Syntaxfärbung im Wüstenschema verwendet.

Juve
quelle

Antworten:

161

Schau dir an $VIMRUNTIME/colors/desert.vim. Dort werden mit dem hi[ghlight]Befehl Farbzuordnungen definiert . Die Suchhervorhebung ist definiert als

hi Search guibg=peru guifg=wheat

für die GUI und

hi Search cterm=NONE ctermfg=grey ctermbg=blue

für Terminals.

Sie können diese Einstellung überschreiben, indem Sie .vimrcdenselben Befehl verwenden, nachdem Sie Ihre ausgewählt haben colorscheme. Geben Sie :h hifür Hilfe ein.

Ferdinand Beyer
quelle
2
Hallo! Du hast mir nur einen weiteren Hinweis gegeben. Ich habe immer verwendet: Hilfe anstelle von: h;)
Juve
2
Ich habe das Tortenfarbschema gefunden, um meine Bedürfnisse gut zu erfüllen. : Farbschema Torte
James Mills
13
Möglicherweise müssen Sie dies auch tun, :set hlsearchwenn Ihre Suchergebnisse überhaupt nicht hervorgehoben werden.
Jeff Allen
Um dies einmal für Ihre aktuelle vim-Sitzung zu tun und Änderungen nicht beizubehalten, führen Sie sie einfach im ex-Modus ( :) vor dem hiBefehl aus::hi Search cterm=NONE ctermfg=grey ctermbg=blue
Nitrodist
Ich kann sehen, dass dies alle Instanzen hervorhebt. Wie ändern Sie die Markierung der Instanz, auf der sich der Cursor gerade befindet?
Costa
49

Für mich muss ich auch hlsearch unter syntax onin hinzufügen~/.vimrc

set hlsearch
hi Search ctermbg=LightYellow
hi Search ctermfg=Red

In VIM können Sie auch Folgendes tun: Sie können es im laufenden Betrieb :highlight Search ctermfg=yellowändern.

  • ctermfg ist für Vordergrundfarbe
  • ctermbg ist für Hintergrundfarbe

Die auf der vi-Dokumentationsseite verfügbaren Farben sind:

*cterm-colors*

NR-16   NR-8    COLOR NAME 
0       0       Black
1       4       DarkBlue
2       2       DarkGreen
3       6       DarkCyan
4       1       DarkRed
5       5       DarkMagenta
6       3       Brown, DarkYellow
7       7       LightGray, LightGrey, Gray, Grey
8       0*      DarkGray, DarkGrey
9       4*      Blue, LightBlue
10      2*      Green, LightGreen
11      6*      Cyan, LightCyan
12      1*      Red, LightRed
13      5*      Magenta, LightMagenta
14      3*      Yellow, LightYellow
15      7*      White
LeOn - Han Li
quelle
6

In meinem Fall zeigte die Zeile im QuickFix-Fenster ein unlesbares Grau auf Cyan, das sich von meinen Suchergebnissen unterschied (ein angenehmeres Schwarz auf Pfirsich). Dies wurde durch den Befehl bestätigt

:hi

das zeigte die Formatierung von QuickFixLineund Searchals eingestellt

QuickFixLine   xxx term=reverse guibg=Cyan
Search         xxx term=reverse ctermfg=0 ctermbg=222 guifg=#000000 guibg=#FFE792

wo xxxhatte ein Beispielformat,

Ich habe die folgende Zeile an meine angehängt ~/.vimrc

hi QuickFixLine term=reverse ctermbg=52

und jetzt habe ich in meinem Terminalfenster einen angenehmeren dunkelroten Hintergrund. Laufen hi:zeigt das Hinzufügen der Hintergrundfarbänderung für mein Ternimal:

QuickFixLine   xxx term=reverse ctermbg=52 guibg=Cyan

(vim 8 auf MacOS High Sierra in iTerm2, mit Molokai-Thema)

Spangen
quelle