Tôi có một regex để thay thế một mẫu nhất định bằng một chuỗi nhất định, nhưng tôi muốn làm cho nó trở nên năng động hơn.Vim regex thay thế bằng n ký tự
Ví dụ, nói rằng tôi có regex này:
%s/hello/-----/g
Tôi sẽ, tuy nhiên, muốn làm một cái gì đó giống như thay vì điều này:
%s/hello/-{5}/g
có nghĩa là thay thế xin chào với 5 dấu gạch ngang.
Có cách nào để thực hiện việc này không?
Cuối cùng, tôi muốn làm một cái gì đó như thế này:
%s/(hello)*/-{\=strlen(\0)}/g
mà sẽ thay thế bất kỳ trường hợp của một chuỗi các chỉ hello
s với dấu gạch ngang có chiều dài bằng với chiều dài của chuỗi phù hợp .
Hoạt động! Cảm ơn. Bạn có biết nơi tôi có thể tìm thấy tất cả các chức năng có sẵn (như strlen và lặp lại)? – tjameson
': h functions' sẽ thực hiện thủ thuật –
Hoặc' function-list'. Đôi khi nó tiện dụng hơn. – sidyll