在vim中使用grep運行grep搜索後,我得到一個文件列表。有沒有辦法選擇這些文件中的一個,並在特定行的新選項卡中打開它?在vim中從grep中選擇結果文件
回答
爲了實現你想要的,你必須在調用grep後打開quickfix/error窗口:
:copen
我有一個腳本,它使我每次使用grep。
如果你得到的文件列表,你可以通過
:cn
:colder
在樹狀方式瀏覽他們的詳細信息
:help grep
並滾動到條目底部
只是爲了完整性,以及:copen
命令,還有:cw
,它只打開「quickfix」窗口,如果有條目(所以如果你的grep沒有結果,它不會出現)。
我認爲最簡單的方法(不定義映射),使得在新標籤中打開的文件是做:
:cw " Open the quickfix window
Ctrl-W T " Switch the window into a new tab
<ENTER> " Open the file/line
或者,你可以這樣做:
:cw " Open the quick fix window
Ctrl-W <ENTER> " Open the file/line in a new window
Ctrl-W T " Move the new window to a new tab
如果您希望默認執行此操作,您可以使用BufEnter
和BufLeave
autocmds在進入和離開quickfix窗口時創建和刪除映射;然而,這可能不是微不足道的。
:help :cw
:help :copen
:help quickfix
我來到這個線程尋找一個非常類似的問題的答案。上面提供的答案雖然正確,但未能描述一種便捷的方式,可以將QuickFix窗口中的所有文件一次打開到緩衝區或選項卡中。
似乎有不被內置的命令來做到這一點,但它是微不足道的VIM插件......有人已經在這裏做了 http://pastebin.com/J9RwciFQ
它的代碼(一個函數)12行。 ..粘貼在這裏爲您節省點擊在您的分析。如果你打算嘗試實現這個功能,請按照pastebin鏈接進行操作......我的插件安裝在病原體目錄中,並且我稍微修改了插件(代碼後的細節)。
~/.v/b/v/p/quickfixopenall.vim
" Create command
command! QuickFixOpenAll :call StartQuickFixOpenAll()
function! StartQuickFixOpenAll()
if empty(getqflist())
return
endif
let s:prev_val = ""
for d in getqflist()
let s:curr_val = bufname(d.bufnr)
if (s:curr_val != s:prev_val)
exec "edit " . s:curr_val
endif
let s:prev_val = s:curr_val
endfor
endfunction
所以一旦我有一個grep的結果我很滿意......插件具有這樣的功能:QuickFixOpenAll ......我不得不給出修改插件(附加以下行到quickfixplugin.vim )。我改名爲他定的函數StartQuickFixOpenAll ...
" Create command
command! QuickFixOpenAll :call StartQuickFixOpenAll()
然後,你必須在grep的結果中的所有文件打開爲緩衝區...如果你想運行任何commeon操作,如查找/替換你可以前綴用「bufdo」命令定期執行命令,它將執行所有命令...在VIM類型「幫助bufdo」
如果你要使用標籤......它使用逗號「編輯」...只需用「tabe」替換它,並且:QuickFixOpenAll將打開每個結果緩存在一個新的選項卡中。
- 1. 選擇文本從Vim中
- 2. 從DataSet中選擇結果
- 3. MySQL中,從選擇結果
- 4. grep的文件從一個文件匹配的grep的結果
- 5. 選擇在Vim中
- 6. 從grep的結果
- 7. 從選擇結果
- 8. 從視覺搜索在VIM中選擇?
- 9. 如何在vim中選擇文本?
- 10. 從選擇結果中插入多行
- 11. 如何從聯合結果中選擇?
- 12. SQLite從選擇結果中刪除行
- 13. 從排序列表中選擇結果?
- 14. 從查詢結果中選擇?
- 15. Combobox從搜索結果中選擇Javafx
- 16. 結果未從子查詢中選擇
- 17. 從jquery中選擇成功結果
- 18. 從MYSQL例程結果中選擇列
- 19. 從多個表中選擇結果
- 20. MSSQL:從同一行中選擇結果
- 21. 從結果集中選擇行數
- 22. 從foreach結果中選擇值
- 23. applescript從列表結果中選擇
- 24. 在Vim中選擇頁面?
- 25. 如何選擇在Vim中
- 26. 在vim中搜索選擇
- 27. grep從文件不寫結果到輸出文件
- 28. jQuery插件從選擇下拉框中篩選結果
- 29. 從結果集中選擇(單擊非SQL選擇)特定結果
- 30. 如何在grep中唯一的結果自動打開文件?
如何讓文件在特定行的新選項卡中打開? – Amjith 2009-08-05 19:27:23