首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以打开/关闭autocmd吗?

可以打开/关闭autocmd吗?
EN

Stack Overflow用户
提问于 2013-04-14 22:07:25
回答 2查看 1.5K关注 0票数 4

我让我的.vimrc高亮显示所有与当前光标相匹配的单词

代码语言:javascript
复制
autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/', expand('<cword>'))

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

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 23:08:25

在您的.vimrc中输入以下内容:

代码语言:javascript
复制
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>

这个想法是,如果你调用一个带参数的函数,它会将行为更改为print/no print。autocommand只使用最后一个设置,因为在没有参数的情况下调用那里的函数。

票数 1
EN

Stack Overflow用户

发布于 2013-04-14 22:20:16

清除自动命令并取消高亮显示:

代码语言:javascript
复制
nmap <f8> :autocmd! CursorMoved<cr> :call clearmatches()<cr>

并使用不同的密钥将其重新打开:

代码语言:javascript
复制
nmap <f9> :autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/', expand('<cword>'))<cr>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15999958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档