Vim tìm kiếm và thay thế

Vim Search Replace



Vim là một trình soạn thảo văn bản tiên tiến và phổ biến được cài đặt sẵn trong hầu hết các bản phân phối Linux. Nó là một trình soạn thảo văn bản dựa trên dòng lệnh được sử dụng chủ yếu trong các hệ điều hành không dựa trên GUI. Nó có cấu hình cao và đi kèm với rất nhiều tính năng. Một điểm quan trọng liên quan đến Vim là nó được tối ưu hóa cao cho việc lặp lại.

Trong bài viết này, chúng tôi sẽ giải thích một trong những tính năng hữu ích nhất của nó là tìm kiếm và thay thế. Với một số cấu hình, bạn có thể tìm kiếm bất cứ thứ gì bạn muốn với tốc độ cực nhanh và độ chi tiết tốt hơn.







Phương pháp # 1 Tìm và thay thế một lần xuất hiện tại một thời điểm (Sử dụng lệnh gạch chéo và dấu chấm)

Cách đơn giản nhất để tìm kiếm và thay thế một từ trong Vim là sử dụng lệnh gạch chéo và dấu chấm. Dấu gạch chéo (/) có thể được sử dụng để tìm kiếm một từ trong khi dấu chấm (.) Có thể được sử dụng để thay thế từ đó.



Thực hiện theo các bước đơn giản dưới đây để tìm kiếm và thay thế bất kỳ từ nào trong trình chỉnh sửa Vim:



  • Mở tệp bằng Vim
  • Nhấn phím gạch chéo (/) cùng với cụm từ tìm kiếm như / search_term và nhấn Enter. Nó sẽ đánh dấu từ đã chọn.
  • Sau đó nhấn tổ hợp phím cgn để thay thế từ được đánh dấu và nhập Replace_term
  • Quay lại chế độ bình thường. Tiếp theo, nhấn n để chuyển đến lần xuất hiện tiếp theo của cụm từ tìm kiếm.
  • Sau đó, nhấn dấu chấm (.) Nếu bạn muốn thay thế lần xuất hiện tiếp theo bằng cùng một Replace_term, nếu không, một lần nữa nhấn phím n để chuyển đến lần xuất hiện tiếp theo.

Đây là phương pháp nhanh nhất và tốt nhất để tìm kiếm cơ bản và thay thế các chức năng vì nó chỉ liên quan đến một vài lần nhấn phím và ít làm gián đoạn công việc hiện tại của bạn. Tuy nhiên, đối với việc tìm kiếm một từ xảy ra quá nhiều lần, nó sẽ trở thành một công việc lặp đi lặp lại và tốn thời gian.





Với Vim, có một cách khác tốt hơn để tránh tác vụ lặp đi lặp lại này là sử dụng lệnh thay thế.

Phương pháp # 2 Tìm và Thay thế bằng lệnh Thay thế

Lệnh thay thế có thể được sử dụng để thực hiện các chức năng tìm kiếm và thay thế từ cơ bản đến nâng cao bằng một lệnh duy nhất. Cú pháp cho lệnh này là:



$:NS/<search_term> /<Replace_term> /Lựa chọn

Lưu ý rằng bạn phải nhập lệnh này ở chế độ bình thường.

Ở đâu

  • S: viết tắt của thay thế
  • search_term: từ bạn muốn tìm kiếm và thay thế
  • Replace_term: từ mà bạn muốn thay thế nó bằng
  • Tùy chọn: c (để xác nhận), g (thay thế tất cả sự xuất hiện trong một dòng), i (để bỏ qua trường hợp)

Tìm kiếm và Thay thế

Để thực hiện tìm kiếm cơ bản và thay thế bằng lệnh thay thế, hãy sử dụng cú pháp sau:

:%NS/<search_term> /<Replace_term> /NS

Lệnh này sẽ thay thế tất cả các trường hợp của search_term bằng Replace_term.

Ví dụ, đây là văn bản mẫu của chúng tôi:

Ubuntu là một trong những hệ điều hành Linux được sử dụng nhiều nhất. Ubuntu bao gồm hàng ngàn chương trình hữu ích. Với dòng lệnh Ubuntu, bạn có thể hoàn thành hầu hết mọi loại tác vụ.

Để thay thế mỗi lần xuất hiện Ubuntu bằng Debian trong văn bản sau, lệnh sau sẽ được sử dụng:

:%NS/Ubuntu/Debian/NS

Tìm kiếm và thay thế trong một dòng duy nhất

Để tìm kiếm và thay thế sự xuất hiện của một từ chỉ trong một dòng thay vì toàn bộ tệp, hãy sử dụng cú pháp sau:

:NS/<search_term> /Replace_term/NS

Ví dụ, để thay thế sự xuất hiện của Ubuntu bằng Debian trong văn bản mẫu ở trên, lệnh sau không có ký hiệu% sẽ được sử dụng:

:NS/Ubuntu/Debian/NS

Tìm kiếm và Thay thế bằng Xác nhận

Nếu bạn muốn được yêu cầu xác nhận trước khi thay thế cụm từ tìm kiếm, hãy sử dụng c ở cuối lệnh tìm kiếm như sau:

:NS/<search_term> /<Replace_term> /gc

Lệnh trên sẽ yêu cầu xác nhận trước mỗi lần thay thế (Nhập y cho có trong khi n cho không).

Tìm kiếm và Thay thế không phân biệt chữ hoa chữ thường

Khi bạn thực hiện tìm kiếm và thay thế trong Vim, mặc định nó sẽ phân biệt chữ hoa chữ thường. Bạn có thể thực hiện tìm kiếm không phân biệt chữ hoa chữ thường bằng cách thêm i vào cuối lệnh như sau:

:NS/<search_term> /<Replace_term> /đưa cho

Ví dụ: để tìm kiếm thuật ngữ Ubuntu bất kể trường hợp của nó (UBUNTU, Ubuntu, ubuntu, uBuntu), lệnh sau sẽ được sử dụng:

:NS/ubuntu/debian/đưa cho

Tìm kiếm và thay thế toàn bộ từ

Theo mặc định, lệnh thay thế tìm kiếm bất kỳ kết quả phù hợp nào cho dù nó là một phần hay toàn bộ. Để khớp với search_term chính xác và sau đó thay thế nó bằng Replace_term, hãy đặt search _term trong.

Ví dụ, trong một số tài liệu, bạn muốn tìm kiếm và thay thế từ chính xác bạn bằng tôi. Trong trường hợp đó, lệnh sau sẽ được sử dụng:

:NS/<bạn> /tôi/

Nó sẽ tìm từ bạn và thay thế nó bằng tôi. Tuy nhiên, nó sẽ không thay thế những từ như của bạn.

Tìm kiếm và thay thế các từ giữa các dòng cụ thể

Để tìm kiếm một từ trong số các dòng cụ thể thay vì chỉ một dòng hoặc toàn bộ tệp, có thể sử dụng cú pháp sau:

:<dòng đầu>,<Dòng cuối>NS/<search_term> /<Replace_term> /NS

Ví dụ, để tìm kiếm và thay thế sự xuất hiện của Ubuntu bằng Debian từ các dòng từ 3 đến 8 trong một số tệp, lệnh sẽ là:

:1, 10 giây/ubuntu/debian/NS

Để tìm kiếm và thay thế sự xuất hiện của một từ từ dòng hiện tại sang số dòng x tiếp theo, cú pháp sau sẽ được sử dụng:

:NS/search_term/Replace_term/g x

Tương tự, để tìm kiếm và thay thế sự xuất hiện của một từ từ dòng hiện tại đến dòng cuối cùng: cú pháp sau sẽ được sử dụng:

:.,$ s/search_term/Replace_term/NS

PHẦN KẾT LUẬN

Trong bài viết này, chúng ta đã tìm hiểu hai cách dòng lệnh để tìm kiếm và thay thế bất kỳ từ nào trong trình soạn thảo Vim. Lệnh đầu tiên sử dụng dấu gạch chéo và dấu chấm là phương pháp đơn giản và dễ dàng nhất nhưng nó lại lặp đi lặp lại khi bạn đang tìm kiếm và thay thế một từ xuất hiện quá nhiều lần. Lệnh khác là lệnh thay thế một lần có thể có vẻ khó và phức tạp, nhưng khi bạn bắt đầu thực hành nó, bạn sẽ thấy nó cực kỳ hữu ích trong nhiều tình huống.