我使用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