2009-08-27 2 views
8

Làm thế nào bạn có thể tham chiếu đến trận đấu trong lệnh g trong Vim?Để nối thêm một trận đấu hiệu quả trong Vim: g/---/s/---/X/

Tôi muốn đặt X sau trận đấu mà không thay thế trận đấu. Ví dụ, trong lệnh sau mà không cần viết create_title hai lần.

:g/create_title/s/create_title/X/ 

Bạn sẽ nhận được

create_titleX 

bằng cách chạy lệnh để

create_tile 
+1

Cảm ơn câu trả lời của bạn! –

Trả lời

21

Tôi không chắc tại sao bạn cần phần g của lệnh - thay thế sẽ chỉ hoạt động trên các dòng khớp. Dưới đây là những gì bạn đang tìm kiếm:

:%s/create_title/&X/ 

& đại diện cho toàn bộ văn bản được khớp.

+0

Chỉ tìm kiếm dòng hiện tại. –

+1

Mặc dù đó & trick là mát mẻ. –

+0

Đã chỉnh sửa để tìm kiếm toàn bộ tệp. Lỗi của tôi. – Cascabel

3
:%s/\(create_title\)/\1X/g 

công trình đối với tôi. (nếu tôi hiểu câu hỏi của bạn một cách chính xác).

+2

Tôi có xu hướng thích '&' vì nó nhanh hơn để nhập và tôi không phải sửa đổi mẫu tìm kiếm (tốt hơn cho những người không có đầu óc). Nắm bắt một biểu hiện con là tất nhiên nhiều hơn nữa mở rộng mặc dù! – Cascabel