Vim: como alterar a cor de destaque dos hits da pesquisa e seleção de correções rápidas

123

Estou usando o esquema de cores do deserto, que usa texto branco em fundo laranja para destacar os hits da pesquisa. O mesmo padrão é usado para a entrada selecionada na janela do quickfix.

Branco em laranja não é muito legível. Como altero isso em .vimrc?

Edit: Obrigado pela resposta rápida, para o esquema do deserto agora estou usando a seguinte modificação de destaque de pesquisa:

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

O roxo é muito fácil de detectar visualmente e não é usado no IMHO para colorir sintaxe no esquema do deserto.

Juve
fonte

Respostas:

161

Olhe para $VIMRUNTIME/colors/desert.vim. Os mapeamentos de cores são definidos lá com o hi[ghlight]comando O destaque da pesquisa é definido como

hi Search guibg=peru guifg=wheat

para a GUI e

hi Search cterm=NONE ctermfg=grey ctermbg=blue

para terminais.

Você pode substituir essa configuração .vimrcusando o mesmo comando depois de selecionar sua colorscheme. Digite :h hipara obter ajuda.

Ferdinand Beyer
fonte
2
Ei! Você acabou de me dar outra dica. Eu sempre usei: ajuda em vez de: h;)
Juve
2
Encontrei o esquema de cores da torta para atender bem às minhas necessidades. : colorscheme torte
James Mills
13
Você também pode precisar :set hlsearchse os resultados da pesquisa não estiverem sendo destacados.
Jeff Allen
Para fazer isso uma vez na sua sessão atual do vim e não persistir alterações, basta executá-lo no modo ex ( :) na frente do hicomando::hi Search cterm=NONE ctermfg=grey ctermbg=blue
Nitrodist
Eu posso ver isso destaca todas as instâncias. Como você altera o destaque da instância em que o cursor está atualmente?
Costa
49

Para mim eu tenho que acrescentar também hlsearch sob syntax onno~/.vimrc

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

Dentro do VIM, você também pode fazer: :highlight Search ctermfg=yellowalterá-lo rapidamente.

  • ctermfg é para cor de primeiro plano
  • ctermbg é para cor de fundo

as cores disponíveis na página de documentação do vi são:

*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
fonte
6

No meu caso, a linha na janela do QuickFix estava mostrando um cinza ilegível no ciano, que era diferente dos meus resultados de pesquisa (um preto mais agradável no pêssego) Isso foi confirmado pelo comando

:hi

que mostrava a formatação QuickFixLinee Searchcomo definida como

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

onde xxxtinha um formato de amostra,

Anexei a seguinte linha ao meu ~/.vimrc

hi QuickFixLine term=reverse ctermbg=52

e agora na minha janela do terminal tenho um fundo vermelho escuro mais agradável. A execução hi:mostra a adição da mudança de cor de fundo para o meu ternimal:

QuickFixLine   xxx term=reverse ctermbg=52 guibg=Cyan

(vim 8 no MacOS High Sierra no iTerm2, com tema molokai)

Spangen
fonte