Vim でハイライトする operator をつくった
[インストール]
NeoBundle 'osyo-manga/vim-operator-highlighter'
[使い方]
<Plug>(operator-highlighter)
をマッピングします。
nmap <Leader>h <Plug>(operator-highlighter) " 1つのみハイライトしたい場合はこっちを使う " nmap <Leader>h <Plug>(operator-highlighter-once) " ハイライトを消す map <Leader>hh <Plug>(operator-highlighter-clear)
ハイライトグループ等の設定は g:operator#highlighter#config
に行ないます。
let g:operator#highlighter#config = { "group" : "Error" }
また、timer_start()
が使用できる環境であれば、以下のように設定して自動的に消すことも出来ます。
" 1000ms 後に消える let g:operator#highlighter#config = { "clear_time" : 1000 }
[operator-sequence と組み合わせる]
operator-highlighter は単体で使用すればあまり使わなさそうな operator ですが、これは thinca/vim-operator-sequence と組み合わせることで真価を発揮します。 例えば、以下のように設定することで ヤンクしたtextobjを一瞬ハイライトさせる というような事が可能です。
" Use thinca/vim-operator-sequence " yank and highlight let g:operator#highlighter#config = { "clear_time" : 3000 } noremap <Plug>(yank) y noremap <expr> y operator#sequence#map("\<Plug>(operator-highlighter-once)", "\<Plug>(yank)")
こんな感じで『一瞬ハイライトさせたい』みたいな用途に利用することが出来ます。
[注意]
clear_time
を設定してる場合、ハイライトが消えるときにハイライトしたウィンドウが表示されてなければ一瞬ちらつく事があるので注意してください。