はじめに
Vim 上で grep 検索をかけるとき、ack.vimを使っているのですが、自動で最初の検索結果がウインドウで開いてしまうのに違和感を感じていました。
その挙動を OFF にする方法を調べたので、この記事に簡単にまとめます。
tl;dr
:Ack
の代わりに :Ack!
を使うだけで OK でした。
:help Ack
の結果を引用します。!
をつけることで、最初の検索結果にジャンプする挙動を OFF に出来るようです。
:Ack[!] [options] {pattern} [{directory}] *:Ack*
Search recursively in {directory} (which defaults to the current
directory) for the {pattern}. Behaves just like the |:grep| command, but
will open the |Quickfix| window for you. If [!] is not given the first
occurrence is jumped to.
より便利にするために
自動で最初の検索結果をウインドウに開く挙動を OFF にする方法はわかったのですが、定常的にこの挙動を OFF にしたいと思っていました。
どうすればいいかを調べたところ、 Ack.vim の READMEに Tips が載っていたので、引用します。
以下を自分の .vimrc
に書くと良いとのことでした。
cnoreabbrev Ack Ack!
nnoremap <Leader>a:Ack!<Space>
以下、それぞれのコマンドの意味を調べました。
cnoreabbrev Ack Ack!
について
cnoreabbrev
は、分解すると以下のような意味になります。
c
:コマンドラインモードnore
: 非再帰的abbrev
:短縮入力
つまり、コマンドラインモードで Ack
と入力したら、自動で Ack!
と補完されるようになります。
nnoremap <Leader>a :Ack!<Space>
について
nnoremap
は、分解すると以下のような意味になります。
n
:ノーマルモードnoremap
:非再帰的
<Leader>a :Ack!<Space>
は、<Leader>a
と入力すると、:Ack!<Space>
という入力に変換します。
終わりに
インストールしているだけのプラグインでも、少し調べることで便利な使いかたを知れたり、vim のコマンドについて知ることができたりして良いなと思ってます。
簡単にではありますが、コツコツ調べていきたいなと思います。