微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim – 可以打开/关闭autocmd吗?

我已经在我的. vimrc中使用了高亮显示与当前光标相匹配的所有单词

autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/',expand('<cword>'))

但有时它有点烦人,所以我想映射一个键来打开或关闭它,例如< F10>

我怎样才能做到这一点?

解决方法

将以下内容放在.vimrc中:

let g:toggleHighlight = 0
function! ToggleHighlight(...)
  if a:0 == 1 "toggle behavIoUr
    let g:toggleHighlight = 1 - g:toggleHighlight
  endif

  if g:toggleHighlight == 0 "normal action,do the hi
    silent! exe printf('match Search /\<%s\>/',expand('<cword>'))
  else
    "do whatever you need to clear the matches
    "or nothing at all,since you are not printing the matches
  endif
endfunction

autocmd CursorMoved * call ToggleHighlight()
map <F8> :call ToggleHighlight(1)<CR>

这个想法是,如果你用一个参数调用函数,它会改变行为以打印/不打印.自动命令只使用最后一个设置,因为那里的函数没有参数调用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐