LoginSignup
28
22

More than 5 years have passed since last update.

lightline.vimとvim-anzuで検索ヒット数を表示する

Posted at

この内容は以下の記事を元にしたlightline.vim版になります。

先日、以下の投稿でlightline.vimを導入した後に、上の記事を知って同じ事をやりたくなったのでカスタマイズしてみました。

カスタマイズ後の見た目

画像は NeoBundle を検索して47件中、2件目に移動した結果をファイル名の右側に表示したものです。

MacVim_anzu.png

カスタマイズ内容

.vimrc
" lightline.vim関連 {{{
let g:lightline = {
    \ 'colorscheme': 'landscape',
    \ 'active': {
    \   'left': [
    \       ['mode', 'paste'],
    \       ['readonly', 'filename', 'modified', 'anzu']
    \   ]
    \ },
    \ 'component_function': {
    \   'anzu': 'anzu#search_status'
    \ }
    \ }
"}}}

" vim-anzu関連 {{{
nmap n <Plug>(anzu-n)
nmap N <Plug>(anzu-N)
nmap * <Plug>(anzu-star)
nmap # <Plug>(anzu-sharp)
augroup vim-anzu
" 一定時間キー入力がないとき、ウインドウを移動したとき、タブを移動したときに
" 検索ヒット数の表示を消去する
    autocmd!
    autocmd CursorHold,CursorHoldI,WinLeave,TabLeave * call anzu#clear_search_status()
augroup END
"}}}

lightline.vimの設定

  1. anzu#search_status()が検索ヒット数を出力するので、component_functionにキーanzuで登録します。
  2. 表示位置はキャプチャ画像の青い部分のファイル名の右側にしたいので、先程登録したanzuを`g:lightline.active.leftの2つ目のリストの最後に追加します。

また、anzuの位置を変えれば表示位置も変わります。
たとえば左端の白い場所に表示したいなら、1つ目のリストに追加します。

vim-anzuの設定

n, N, *, #のキーマップはvim-anzuのExampleと一緒ですが、消去は以下のタイミングで自動実行しています。

  • 一定時間キー入力がないとき (CursorHold,CursorHoldI)
  • ウインドウを移動したとき (WinLeave)
  • タブを移動したとき (TabLeave)
28
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
22