4

我的 vimrc 文件中有以下几行:

hi ExtraWhitespace cterm=NONE ctermbg=green ctermfg=green guibg=green guifg=green
match ExtraWhitespace /\s\+$\|\t/

这些行将突出显示除空格之外没有字符的所有行以及任何制表符。我想添加一个函数来切换突出显示空白。

map <F8> :call ToggleWhitespaceMatching()<cr>

我曾尝试编写自己的,但无法使其正常工作。有人可以建议一个功能来实现这一点。另外,我希望默认情况下启用匹配。

4

1 回答 1

6

与 kev 类似的想法,但切换了高亮而不是匹配

let s:hilightws = 1

hi ExtraWhitespace cterm=NONE ctermbg=green ctermfg=green guibg=green guifg=green
hi link MaybeExtraWhitespace ExtraWhitespace
match MaybeExtraWhitespace /\s\+$/    

fun ToggleWhitespaceMatching()
  if s:hilightws
    hi link MaybeExtraWhitespace NONE
    let s:hilightws = 0
  else
    hi link MaybeExtraWhitespace ExtraWhitespace
    let s:hilightws = 1
  endif
endfun

map <F8> :call ToggleWhitespaceMatching()<CR>
于 2012-06-29T21:36:05.860 回答