我的 Neovim LSP 错误消息没有红色

My Neovim LSP error message doesn't have a red color

我的 Neovim LSP 错误消息没有红色:

这是我的 vimrc 文件。真不知道是什么问题

syntax on

set guicursor=
set relativenumber
set noerrorbells
set tabstop=2 softtabstop=2
set shiftwidth=2
set expandtab
set smartindent
set nu
set nowrap
set smartcase
set noswapfile
set nobackup
set undodir=~/.vim/undodir
set undofile
set incsearch
set cursorline
set cursorcolumn
set updatetime=50



call plug#begin('~/.vim/plugged')

Plug 'gruvbox-community/gruvbox'
Plug 'preservim/nerdtree'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'
Plug 'scrooloose/syntastic'
Plug 'scrooloose/nerdcommenter'
Plug 'majutsushi/tagbar'
Plug 'vim-airline/vim-airline'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'airblade/vim-gitgutter'
Plug 'blueyed/vim-diminactive'
Plug 'mattn/emmet-vim'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'mileszs/ack.vim'
"Plug 'mxw/vim-jsx'
"Plug 'leafgarland/typescript-vim'
"Plug 'peitalin/vim-jsx-typescript'
Plug 'neovim/nvim-lspconfig'
Plug 'nvim-lua/completion-nvim'

call plug#end()


let g:gruvbox_contrast_dark = 'hard'
if exists('+termguicolors')
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
endif
let g:gruvbox_invert_selection='0'

colorscheme gruvbox
set background=dark

let loaded_matchparen = 1
let mapleader = " "

let g:airline#extensions#tabline#enabled = 1
let g:fzf_layout = { 'window': { 'window': 0.8, 'height': 0.8 } }
let $FZF_DEFAULT_OPTS='--reverse'

set completeopt=menuone,noinsert,noselect
let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']
lua require'nvim_lsp'.tsserver.setup{ on_attach=require'completion'.on_attach }

map <C-\> :NERDTreeToggle<CR>
map <C-/> :TagbarToggle<CR>

nnoremap <leader>h :wincmd h<CR>
let g:gitgutter_map_keys = 0
nnoremap <leader>j :wincmd j<CR>
nnoremap <leader>k :wincmd k<CR>
nnoremap <leader>l :wincmd l<CR>
nnoremap <leader>pv :wincmd v<bar> :Ex <bar> :vertical resize 30<CR>

我在 Windows 10 并使用新的 Windows 终端 + NeoVim,我的配置与您的配置相似,具有相同的配色方案。在设置颜色方案之前,我通过将此添加到我的 'init.vim' 文件来解决颜色问题:

set termguicolors

在不同的 GitHub 讨论中推荐了以下选项作为解决方案,但它们对我没有任何影响:

let g:gruvbox_contrast_dark = 'hard'

if exists('+termguicolors')
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
endif

let g:gruvbox_invert_selection='0'
set background=dark

我删除了 "Plug 'leafgarland/typescript-vim' 并且它删除了修复 :D

为了将来参考,旧答案可能会失败,现在有更多有组织的高亮组供您自定义高亮组的颜色,例如:

highlight LspDiagnosticsDefaultError guifg=#FF0000

有关更多详细信息,请阅读 :help lsp-highlight-diagnostics:help highlight

编辑:请注意,这需要遵循更通用的配色方案设置,例如 colorscheme whatever 可能会覆盖您的突出显示

这是对我有用的

hi LspDiagnosticsVirtualTextError guifg=Red ctermfg=Red

guifg 用于 GUI 客户端,ctermfg 用于终端客户端

这应该适用于终端和 gui 客户端

您可以使用

Plug 'folke/lsp-colors.nvim'

要更改诊断消息的颜色:

set termguicolors

hi DiagnosticError guifg=Red
hi DiagnosticWarn  guifg=DarkOrange
hi DiagnosticInfo  guifg=Blue
hi DiagnosticHint  guifg=Green

设置 LspDiagnosticsVirtualTextError 在我的案例中没有改变颜色。

要查看您当前使用的亮点,运行 :hi。由于突出显示列表可能很长,您可能希望在 Vim 缓冲区中打开该列表以便于搜索和导航:

:enew|pu=execute('hi')

另请参阅 this discussion,了解如何使用 Lua 设置 LSP 颜色。 link 是在这个问题的已删除答案中提供的。