Sau khi tôi chạy tìm kiếm grep trong vim với: grep, tôi nhận được danh sách tệp. Có cách nào để chọn một trong các tệp đó và mở nó trong một tab mới ở dòng cụ thể đó không?Chọn các tệp kết quả từ grep trong vim
Trả lời
Để đạt được những gì bạn muốn, bạn phải mở cửa sổ quickfix/error sau khi gọi grep:
:copen
Tôi có một tập lệnh tạo cho tôi mỗi khi tôi sử dụng grep.
Nếu bạn nhận được một danh sách các tập tin mà bạn có thể duyệt chúng một cách cây như qua
:cn
:colder
Để biết thêm thông tin
:help grep
và cuộn xuống cuối của entry
Chỉ để hoàn thành, cũng như lệnh :copen
, cũng có :cw
, chỉ mở cửa sổ "quickfix" nếu có mục nhập (vì vậy nếu grep của bạn không có kết quả, nó sẽ không xuất hiện).
Tôi nghĩ rằng cách dễ nhất (không xác định một ánh xạ) làm cho các tập tin mở trong một tab mới sẽ được thực hiện:
:cw " Open the quickfix window
Ctrl-W T " Switch the window into a new tab
<ENTER> " Open the file/line
Ngoài ra, bạn có thể làm:
: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
Nếu bạn muốn thực hiện theo mặc định, bạn có thể sử dụng các ô tự động BufEnter
và BufLeave
để tạo và loại bỏ ánh xạ khi nhập và thoát khỏi cửa sổ quickfix; tuy nhiên, điều này có lẽ không tầm thường.
:help :cw
:help :copen
:help quickfix
Tôi tìm thấy câu trả lời cho một câu hỏi rất giống nhau. Câu trả lời được trình bày ở trên, mặc dù chính xác, không thể mô tả một cách thuận tiện để mở TẤT CẢ các tệp trong cửa sổ QuickFix cùng một lúc ... vào bộ đệm hoặc tab.
Có vẻ như không phải là một xây dựng trong lệnh để làm điều đó, nhưng nó tầm thường như một plugin VIM ... ai đó đã làm nó ở đây http://pastebin.com/J9RwciFQ
Đó là 12 dòng mã (một chức năng). .. dán vào đây để giúp bạn tiết kiệm một nhấp chuột trong quá trình phân tích. Làm theo các liên kết pastebin nếu bạn đang cố gắng để thực hiện điều này mặc dù ... plugin của tôi được cài đặt trong thư mục mầm bệnh và tôi đã sửa đổi các plugin từ bản gốc một chút (chi tiết sau khi mã).
~/.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
Vì vậy, một khi tôi có một kết quả grep Tôi hài lòng với ... các plugin có chức năng: QuickFixOpenAll ... Tôi đã phải sửa đổi các plugin như được đưa ra (thêm dòng sau vào quickfixplugin.vim). Và tôi đổi tên cho chức năng StartQuickFixOpenAll của mình ...
" Create command
command! QuickFixOpenAll :call StartQuickFixOpenAll()
Sau đó, bạn có tất cả các tập tin trong kết quả grep mở như bộ đệm ... nếu bạn muốn chạy bất kỳ hoạt động commeon như tìm/thay thế bạn có thể tiền tố lệnh thông thường với lệnh "bufdo" sẽ thực hiện lệnh của bạn trong tất cả ...trong loại VIM "help bufdo"
Bạn có thể sửa đổi thường xuyên plugin này nếu bạn muốn sử dụng các tab ... nó sử dụng "chỉnh sửa" có dấu phẩy ... chỉ thay thế bằng "tabe" và: QuickFixOpenAll sẽ mở mỗi bộ đệm kết quả trong một tab mới.
- 1. Bao gồm tiêu đề trong kết quả 'grep'
- 2. bash grep kết quả thành mảng
- 3. Thêm dòng trống sau mỗi kết quả trong grep
- 4. Sử dụng grep với cụm từ thông dụng để lọc ra các kết quả phù hợp
- 5. mở 100 tệp trong vim
- 6. kỹ thuật trong git grep và vim
- 7. Kết quả tổng hợp từ hai câu chọn lựa chọn
- 8. Cách sắp xếp kết quả thu được bằng grep -c?
- 9. bash: gán kết quả regex grep cho mảng
- 10. Chọn kết quả đầu tiên trong XPath
- 11. Xóa dấu cách trong nhật thực - TỪ CÁC KẾT QUẢ
- 12. Chọn một mẫu ngẫu nhiên kết quả từ kết quả truy vấn
- 13. Không thể chọn kết quả từ kết quả tìm kiếm select2
- 14. Trả lại kết quả từ CHỌN bằng nút-postgres
- 15. Cách tô màu các mẫu kết quả vimgrep của tôi
- 16. Tạo tập lệnh chèn từ kết quả đã chọn
- 17. Vim: đánh dấu tất cả các kết quả phù hợp trong incsearch
- 18. Chọn kết quả từ giữa danh sách được sắp xếp?
- 19. Kết quả tệp Django tĩnh trong 404
- 20. MySQL CHỌN x TỪ KHI KHÔNG CÓ (CHỌN x TỪ b) - Kết quả bất ngờ
- 21. Cách chuyển kết quả tìm đến lệnh argadd của vim
- 22. Vim - Tìm kiếm và thay thế kết quả
- 23. Vim: wildcard grep của không hoạt động trong cửa sổ
- 24. chạy grep từ bên trong GNU tạo
- 25. Đường ống tìm kết quả vào grep để loại trừ thư mục nhanh
- 26. hai kết quả đầu tiên từ lệnh ls
- 27. Nhiều lựa chọn trong Vim
- 28. kết quả tìm kiếm đường ống đến các tab/cửa sổ/bộ đệm khác trong VIM
- 29. Vim - dễ dàng chỉnh sửa kết quả lọc
- 30. xóa từ cuối dòng sử dụng khối chọn trong vim
Làm cách nào để bạn mở tệp trong tab mới ở dòng cụ thể đó? – Amjith