0
我試圖創建一個自定義命令使用使用vimgrep像GVIM自定義命令參數
:command -nargs=* Find :tabnew <bar> vimgrep /<arg1>/gj <arg2> <bar> cw <cr>
如何訪問給定文件搜索模式的模式參數ARG1和ARG2?
編輯1:我想出了以下解決方案
command! -nargs=* Find call VimFind(<f-args>)
function! VimFind(searchPattern,filePattern,...)
let searchCommand = 'vimgrep /'.a:searchPattern.'/gj '.a:filePattern.'|cw'
if a:0 > 0 && a:1 == 'n'
let searchCommand = 'tabnew|'.l:searchCommand
endif
execute l:searchCommand
endfunction
有一個更清潔的方式做到這一點?
編輯2:不錯啊,上面的功能出現了錯誤,然後打開時,沒有發現
啊!我想要根據第三個參數在一個新選項卡中打開結果。把選項卡放在vimgrep和cw之間!這個怎麼用?爲什麼tabnew在開始時會給出一個錯誤,如果vimgrep沒有找到任何東西? – Rnet
我很確定這個錯誤來自':vimgrep';然而,函數內部的錯誤信息很長很醜,所以try..catch用':echomsg'更好。 –