2021年5月1日土曜日

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

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

概要

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

実装

grep.sh
  1. #!/bin/bash
  2. GREP_WORD=${1}
  3. GREP_OUT=${2}
  4. function grep_wrapper(){
  5. grep -r ${GREP_WORD}
  6. }
  7. function main(){
  8. grep_wrapper ${GREP_WORD} > ${GREP_OUT}
  9. }
  10. main ${GREP_WORD} ${GREP_OUT}
cursor.vim
  1. function! GrepWordUnderCursor() abort
  2. let grep_word=expand("<cword>")
  3. let grep_out='/tmp/grep_result.tmp'
  4. silent exec "!./grep.sh '".grep_word."' ".grep_out
  5. silent exec "tabe " grep_out
  6. redraw!
  7. endfunction
  8.  
  9. command GrepWord call GrepWordUnderCursor()

メモ

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

0 件のコメント:

コメントを投稿

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