在Neovim中突出显示尾部空格,浮动窗口除外



我使用NeoVim v0.4.2。

我想突出显示尾部空格,所以首先我在我的vimrc:中添加了以下内容

augroup TrailingSpace
au!
au VimEnter,WinEnter * highlight link TrailingSpaces Error
au VimEnter,WinEnter * match TrailingSpaces /s+$/
augroup END

但如果我打开一个浮动窗口,比如Defx的explorer,这个窗口看起来很尴尬,就像

file1---------------
file2            [T]
file3.txt-----------

(-表示它被突出显示为Error。(

所以我不想在浮动窗口中突出显示尾随空格。然后我尝试了以下方法:

augroup TrailingSpace
au!
au VimEnter,BufWinEnter * call HighlightTrailingSpaces()
augroup END
function! HighlightTrailingSpaces() abort
if &filetype ==# 'defx'
highlight clear TrailingSpaces
else
highlight link TrailingSpaces Error
endif
match TrailingSpaces /s+$/
endfunction

但这对我没有帮助。

我完全不知道如何在浮动窗口中突出显示尾部空格而不突出显示。有什么有用的功能(autocmd事件?(可以用于我的目的吗?

如果您通读:h BufWinEnter,那么一旦缓冲区";显示";在窗口中。在这一点上,defx还没有设置文件类型,这就是为什么您的初始if条件从未被触发的原因。

所以,你想做的是:

augroup TrailingSpace
au!
au VimEnter,WinEnter * highlight link TrailingSpaces Error
au VimEnter,WinEnter * match TrailingSpaces /s+$/
au FileType defx highlight clear TrailingSpaces
augroup END

一个稍微好一点的选项可能是在after/ftplugin/defx.vim创建一个文件,并在文件中添加au FileType defx highlight clear TrailingSpaces

最新更新