2012-06-11 38 views
10

Tôi muốn sử dụng một cái gì đó như vils cho bộ đệm vim.Vim - dễ dàng chỉnh sửa kết quả lọc

Ví dụ:

a 
b 
a 
b 

Tìm kiếm "a" (:g/a/)

Output:

a 
a 

và sau đó chỉnh sửa đầu ra như thể nó là một bộ đệm bình thường. Khi tôi hoàn thành, nó sẽ ánh xạ các thay đổi của tôi theo từng dòng trở lại bộ đệm gốc.

Tôi làm như thế nào?

PS: Tôi có thể sử dụng :%s/../../ hoặc một cái gì đó tương tự, nhưng nó sẽ không gần như thoải mái như nó có thể được. (Ngay cả khi hoàn thành trong CTRL +F đệm sẽ làm việc.)

+2

Tôi muốn sử dụng tính năng này để ẩn các nhận xét trong tệp cấu hình. –

+0

tùy chọn tốt nhất của bạn là tiếp tục ẩn các dòng mà trên đó không có chuỗi tìm kiếm –

Trả lời

4

Sử dụng Qfreplace http://github.com/thinca/vim-qfreplace

  1. quảng cáo d một số vào quickfix. ví dụ: grep foo * /
  2. loại: Qfreplace trên quickfix
  3. thay đổi các dòng nếu bạn muốn.
  4. : w
+0

Đó chính là điều tôi muốn. Cảm ơn nhiều! – Ivaldi

-1

g/../ thể được kết hợp với các lệnh như

:g/^a/ s/a/a.txt/ 

thay đổi ví dụ mỗi 'a' đến 'a.txt '. Xem ': h: g'

+1

Tôi không nghĩ đó là điều anh ta muốn. Tôi nghĩ anh ấy muốn ẩn một số dòng, chỉnh sửa các dòng khác và khi lưu lưu toàn bộ tệp, tức là với các dòng bị ẩn. – ThiefMaster

1

Miễn là các dòng khớp nối trải rộng trên một dãy các dòng liên tiếp, thì NrrwRgn plugin có thể hoạt động cho bạn.

0

Tôi thường sao chép những dòng đến cuối tài liệu

:g/a/t$ 

Nếu bạn muốn, bạn có thể đặt dấu ấn ở phần cuối-of-tài liệu 'cựu':

:$mark a 

Vì vậy, , bây giờ bạn thực sự có thể chỉnh sửa phần 'a,$ của tài liệu như bình thường, bao gồm lưu nó vào một nơi khác:

:'a,$d | new | put! 

Các công trình sau đây cũng như: bạn có thể yank, phụ thêm vào một thanh ghi a:

:g/a/yank A 

Tất nhiên, bạn thể muốn xóa đăng ký một trước khi bắt đầu:

:let @a="" 
2

Các tính năng mà bạn đang nói về âm thanh như occure/narrow-to-region trong emacs.

Trong vim, bạn có thể gõ lệnh sau:

:vimgrep pattern % 

Sau đó gõ :cw để mở QuickFix-list.

Bạn có thể sử dụng nhấp chuột hoặc :cn/:cp để điều hướng để thực hiện thay đổi.

+0

Hmm, điều này không hiệu quả đối với tôi ... Danh sách mở ra, nhưng khi tôi sửa đổi nó, tôi nhận được 'E21: Không thể thay đổi, 'Có thể sửa đổi' được tắt', và sau đó nếu tôi làm': set modifiable' để ghi đè điều đó, những thay đổi không được phản ánh trong tệp gốc. – weronika

Các vấn đề liên quan