シェルでは、次の関数を使用してファイルリストを作成し、vimに渡します。
大丈夫だと思いますが、行参照を失いました。ファイルを正しい順序で開きますが、カーソルが最初の行から始まるため、テキストを再度検索する必要があります。
〜/.bashrcの実際の関数
function vimgrep(){
vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' | grep -v 'Test\|test'` +ls
}
function vimgrep2(){
vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +ls
}
Obs .: filelistはシェルからvimに移動する必要があり、エラーが発生した場合の:makeの結果と同様に、バッファリングされたファイルの行参照を保持する必要があります(ただし、下部のウィンドウ[:cwindow]はありません)。
編集済み:わかりました...それほどエレガントではありませんが、検索した文字列を+ /"$1"としてvimに渡すことができます。
vim `grep -IR "$1" * | awk -F: '$1!=f{print ""$1"";f=$1}' ` +/"$1"
スクリプトが一時ファイルを使用しない場合は、より良いでしょう。