Sử dụng chức năng tìm kiếm tiêu chuẩn (/) trong VIM, có cách nào để tìm kiếm bằng ký tự đại diện (khớp 0 hoặc nhiều ký tự) không?
Thí dụ:
Tôi có một mảng và tôi muốn tìm bất cứ nơi nào các chỉ số của mảng được gán.
array[0] = 1;
array[i] = 1;
array[index]=1;
vân vân.
Tôi đang tìm kiếm một cái gì đó dọc theo dòng
/array*=
nếu có thể.
Tôi nghĩ bạn đang hiểu sai về cách ký tự đại diện hoạt động. Nó không khớp 0 hoặc nhiều ký tự, nó khớp 0 hoặc nhiều hơn của nguyên tử trước, trong trường hợp này là y
. Tìm kiếm
/array*=
sẽ phù hợp với bất kỳ trong số này:
arra=
array=
arrayyyyyyyy=
Nếu bạn muốn khớp 0 hoặc nhiều hơn bất kỳ ký tự nào, hãy sử dụng nguyên tử 'chấm', sẽ khớp với bất kỳ ký tự nào ngoài dòng mới.
/array.*=
Nếu bạn muốn một cái gì đó mạnh mẽ hơn, tôi khuyên bạn nên:
/array\s*\[[^\]]\+\]\s*=
đó là "mảng" theo sau là 0 hoặc nhiều khoảng trắng, theo sau là bất kỳ thứ gì có trong ngoặc, theo sau là 0 hoặc nhiều khoảng trắng, theo sau là dấu "bằng".