2021年5月1日土曜日

【Vim】カーソル下の単語をシェルでgrepし、結果を別タブで開くvimスクリプト

Vimスクリプトに関するメモ。 テキトー実装なので、参考程度にどうぞ。

概要

Vimで編集中にシェルのgrepを使用することを助ける。
  • カーソル下の単語をファイルから検索し、一覧を生成する
  • 検索にはシェルのgrepを用いる
  • 検索結果は一時ファイルに出力し、別タブで開く

実装

grep.sh
#!/bin/bash
GREP_WORD=${1}
GREP_OUT=${2}
function grep_wrapper(){
  grep -r ${GREP_WORD}
}
function main(){
  grep_wrapper ${GREP_WORD} > ${GREP_OUT}
}
main ${GREP_WORD} ${GREP_OUT}
cursor.vim
function! GrepWordUnderCursor() abort
  let grep_word=expand("<cword>")
  let grep_out='/tmp/grep_result.tmp'
  silent exec "!./grep.sh '".grep_word."' ".grep_out
  silent exec "tabe " grep_out
  redraw!
endfunction

command GrepWord call GrepWordUnderCursor()

メモ

grep.sh は grep のラッパーである。
プロジェクトに合わせていい感じに書き換えれば、強い検索環境がカスタムできる。
あと、grep 以外にも書き換えて使えそう。
IDE が無い環境なんかでは、役に立つかもしれないし、立たないかもしれない。

0 件のコメント:

コメントを投稿

コメント表示は承認制に設定しています