如何在Vim中移除制表符及空格高亮?已尝试:noh无效求助
解决Vim所有空格被高亮的问题
看起来你遇到的空格高亮问题不是搜索高亮(nohlsearch)能解决的——毕竟你已经尝试过相关命令但无效。这种情况通常是语法高亮规则或者某个插件的默认配置在自动高亮空格,下面是具体的排查和解决步骤:
1. 先排查是否由插件引起
首先排除插件的影响:
- 用命令
vim -u NONE启动Vim(不加载任何配置和插件),看看空格还会不会高亮。如果此时正常,那问题肯定出在你的某个插件上。 - 从你的
.vimrc插件列表来看,sheerun/vim-polyglot(多语言语法增强包)是最可能的“元凶”——它会给很多语言添加额外的语法高亮规则,包括空格。可以先注释掉这个插件:
然后重启Vim,执行" Plug 'sheerun/vim-polyglot':PlugClean清理插件,再看看问题是否消失。
2. 定位具体的高亮组
如果禁用插件后还是有问题,或者想精准定位是哪个高亮规则在起作用:
- 把光标移到被高亮的空格上,执行这个命令:
它会输出当前空格对应的高亮组名称(比如:echo synIDattr(synID(line('.'), col('.'), 1), 'name')Whitespace、TrailingWhitespace或者某个语言专属的组)。 - 知道组名后,你可以直接在Vim里临时关闭它测试:
如果空格高亮消失,就把这个命令加到你的:highlight clear [你的高亮组名称].vimrc末尾,永久生效。
3. 调整配置顺序
你的.vimrc里把:nohlsearch放在了最开头,但后面加载的插件和syntax on可能会覆盖这个设置。建议把:nohlsearch移到call plug#end()之后,确保所有插件加载完成后再关闭搜索高亮:
call plug#end() :nohlsearch
附你的.vimrc原配置
:nohlsearch syntax on set noerrorbells set tabstop=4 softtabstop=4 set shiftwidth=4 set expandtab set smartindent set nu set nowrap set smartcase set noswapfile set nobackup set undofile set incsearch set colorcolumn=80 set backspace=indent,eol,start highlight ColorColumn ctermbg=0 guibg=lightgrey call plug#begin('~/.vim/plugged') " Neovim lsp Plugins Plug 'rafi/awesome-vim-colorschemes' Plug 'neovim/nvim-lspconfig' Plug 'tweekmonster/gofmt.vim' Plug 'tpope/vim-fugitive' Plug 'vim-utils/vim-man' Plug 'mbbill/undotree' Plug 'sheerun/vim-polyglot' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'stsewd/fzf-checkout.vim' Plug 'vuciv/vim-bujo' Plug 'tpope/vim-dispatch' Plug '/home/mpaulson/personal/vim-apm' Plug 'theprimeagen/vim-be-good' Plug 'gruvbox-community/gruvbox' Plug 'colepeters/spacemacs-theme.vim' Plug 'sainnhe/gruvbox-material' Plug 'phanviet/vim-monokai-pro' Plug 'flazz/vim-colorschemes' Plug 'chriskempson/base16-vim' call plug#end()
内容的提问来源于stack exchange,提问作者Jostimian
相关产品推荐
相关产品推荐

