在vimrc中切换匹配

时间:2012-06-29 21:15:35

标签: linux vim vi

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

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

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

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

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

1 个答案:

答案 0 :(得分:7)

与kev相似的想法,但切换hilighting而不是匹配

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>