Đây là văn bản của tôi:Cần phải lặp lại văn bản trong mỗi dòng và thêm dấu bằng và tiền tố để nó
xxx
yyy
zzz
Tôi muốn nó được văn bản này để thay thế:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Đây có phải là có thể làm gì ở Vim?
Đây là văn bản của tôi:Cần phải lặp lại văn bản trong mỗi dòng và thêm dấu bằng và tiền tố để nó
xxx
yyy
zzz
Tôi muốn nó được văn bản này để thay thế:
xxx = C.xxx
yyy = C.yyy
zzz = C.zzz
Đây có phải là có thể làm gì ở Vim?
Bạn cũng có thể sử dụng mẫu đơn giản:
:%s/.*/& = C.&
Chọn văn bản, sau đó nhấn :
và gõ
s/\(.*\)/\1 = C.\1/
Loại này:
:%s/\(.*\)/\1 = c.\1/g
Breakdown:
%
- làm việc trên tất cả các dòng\(.*\)
- chụp tất cả các nhân vật trong một nhóm ("nhóm 1")s/PATTERN/REPLACEMENT/g
- làm một chuỗi thay\1
trong mô hình thay thế - tham khảo các nhóm phù hợpbạn không cần '^' hoặc '$'. –
@yi_H: điểm tốt – orip
Tùy thuộc vào việc nội dung được sao chép có thực sự ở đầu dòng hay không, có thể thuận tiện để thay đổi '\ s * \ zs' ngay sau'/'đầu tiên sao cho khoảng trắng đầu tiên được bảo tồn. –
Tuyệt vời. Sửa lỗi nhỏ: ':% s /.*/& = C. & /'. Chỉ cần thêm đóng '/'. – mpettis
@mpettis không cần thiết chút nào nếu bạn không có cờ: -D Nó chắc chắn là hoàn chỉnh hơn, nhưng tôi bỏ qua một bên ở đây cho ngắn gọn – sidyll
Tôi cần một cái gì đó như thế này cho nhiều dòng: '% string%' vào 'string =% string% ' –