現在のカーソル上の単語に一致するすべての単語を強調表示するために、.vimrc をフォローしています。
autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/', expand('<cword>'))
しかし、時々それは少し面倒なので、キーをマップしてオンまたはオフにしたいと思います。<F10>
これどうやってするの?
現在のカーソル上の単語に一致するすべての単語を強調表示するために、.vimrc をフォローしています。
autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/', expand('<cword>'))
しかし、時々それは少し面倒なので、キーをマップしてオンまたはオフにしたいと思います。<F10>
これどうやってするの?
自動コマンドをクリアし、強調表示を削除します。
nmap <f8> :autocmd! CursorMoved<cr> :call clearmatches()<cr>
別のキーを使用してオンに戻すには:
nmap <f9> :autocmd CursorMoved * silent! exe printf('match Search /\<%s\>/', expand('<cword>'))<cr>
以下を .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>
アイデアは、引数を指定して関数を呼び出すと、動作が印刷/印刷なしに変更されるということです。autocommand は、関数が引数なしで呼び出されるため、最後の設定を使用します。