私はVimを終了した場合、その後のgrep結果は、端末/ bashのウィンドウの表示を得ているMysplitを実行した後、vimのスクリプトでvimスクリプト:Vimエディタを終了した後、grepが端末に出力を表示しないようにする方法。
function! SearchFname(fname)
execute "silent! grep!" a:fname "~/Index.files"
let l:file = getqflist()
for l:item in l:file
execute 'vsplit' l:item["text"]
endfor
endfunction
command! -nargs=* Mysplit call SearchFname('<args>')
をコマンドを次のようしています。 bashウィンドウで結果を見るのを避けるために、grep
コマンドをバックグラウンドで実行するには?
ターミナル/ bashウィンドウをスクロールした後でもそれを見てはいけません。関数grepの後にgetqflist()
関数を使用していますので、解決策がgetqflist()
の使用に影響しないようにしてください。
ご協力いただければ幸いです。
実際、Index.filesファイルには、プロジェクトのすべてのファイルと、私は:filenameにのみ:fnameを記述しており、:fnameにリテラル '*'を使用してファイル名を検索することができます。 これを実行するには、「実行」サイレント!grep!を使用しています。 '、'、 '、'、 '、'、 '、'、 '、'、 ' '[^ /]'、 'g')。 "$"〜/ Index.files' あなたのアプローチで同じことをする方法。私の以前の質問[http://stackoverflow.com/questions/36878144/vimrc-function-to-search-filename-using-literal-in-a-file-which-has-list-of/36955846?noredirect=1# comment61711091_36955846] – ypp
'=〜'は 'a:fname:'を正規表現として扱うので、 'file'がどのくらい長く/複雑であっても' a:fname'を 'file'で見つけるでしょう。ファイル名のみが使用されていることを確認するには、 'fnamemodify(v:val、 ":t")=〜a:fname'という式を使用します。 – romainl
'mac _ * _ main.c'としてfnameを渡しましたが、'〜/ Index.files'から 'mac_cfg_main.c'にマッチするはずですが、変数' files'の値は 'mac_cfg_main.c ' – ypp