Nguồn thông tin: 1
Đối với người dùng emacs pro:
- Gọi dired để liệt kê các tập tin trong thư mục, hoặc gọi find-dired nếu bạn cần tất cả các thư mục con.
- Đánh dấu các tập tin bạn muốn. Bạn có thể đánh dấu bằng regex bằng cách nhập 【% m】.
- Gõ Q để gọi dired-do-query-thay-regapi.
- Nhập regex tìm của bạn và thay thế chuỗi. Mẫu regex elisp chung
- Đối với mỗi lần xuất hiện, gõ y để thay thế, n để bỏ qua. Nhập 【Ctrl + g】 để hủy bỏ toàn bộ thao tác.
- Kiểu ! để thay thế tất cả các lần xuất hiện trong tệp hiện tại mà không yêu cầu, N bỏ qua tất cả các thay thế có thể cho phần còn lại của tệp hiện tại. (N chỉ emacs 23)
- Để thực hiện thay thế trên tất cả các tệp mà không cần hỏi thêm, hãy nhập Y. (chỉ Emacs 23)
- Gọi ibuffer để liệt kê tất cả các tệp đã mở. Nhập 【* u】 để đánh dấu tất cả các tệp chưa được lưu, nhập S để lưu tất cả các tệp được đánh dấu, nhập D để đóng tất cả.
Hướng dẫn từng bước cho người mới bắt đầu Emacs
Chọn tệp mục tiêu
Bắt đầu emacs bằng cách gõ vào emacss trong dấu nhắc giao diện dòng lệnh. (Hoặc, nhấp đúp vào biểu tượng Emacs nếu bạn đang ở trong môi trường Giao diện người dùng đồ họa)
Chọn tệp trong thư mục
Trước tiên, bạn cần chọn các tập tin bạn muốn thay thế. Sử dụng menu đồ họa 〖Tệp ▸ Mở thư mục. Emacs sẽ yêu cầu bạn cho một đường dẫn thư mục. Nhập đường dẫn thư mục, sau đó nhấn Enter.
Bây giờ, bạn sẽ được hiển thị danh sách các tệp và bây giờ bạn cần đánh dấu các tệp bạn muốn regex find / thay thế hoạt động. Bạn đánh dấu một tệp bằng cách di chuyển con trỏ đến tệp bạn muốn, sau đó nhấn m. Bỏ đánh dấu nó bằng cách nhấn u. . Ví dụ: nếu bạn muốn đánh dấu tất cả các tệp HTML, hãy nhập 【% m】 rồi .html $. (Bạn có thể tìm thấy danh sách các lệnh đánh dấu trong menu đồ họa của Mark Mark (menu này xuất hiện khi bạn ở chế độ chuyển hướng).)
Chọn tệp trong thư mục và tất cả các thư mục con của nó
Nếu bạn muốn tìm / thay thế các tệp trong một thư mục, bao gồm hàng trăm thư mục con, đây là phương pháp để chọn tất cả các tệp này.
Gọi find-dired. (bạn gọi một lệnh bằng cách nhấn [Alt + x】) Sau đó, nhập tên thư mục, ⁖ / Users / mary / myfiles
Lưu ý: nếu bạn đang sử dụng emacs trên thiết bị đầu cuối văn bản không có đồ họa và nếu 【Alt + x】 không hoạt động, hành trình phím tương đương là 【Esc x】.
Emacs sẽ hỏi bạn với lời nhắc Tìm Run Run (với args):. Nếu bạn cần thực hiện thay thế trên tất cả các tệp HTML, hãy nhập -name "* html". Nếu bạn không quan tâm đến loại tệp nào mà chỉ đơn giản là tất cả các tệp trong thư mục đó, thì hãy đưa ra -type f.
Bây giờ, đánh dấu các tập tin như được mô tả ở trên.
Tìm / Thay thế tương tác
Bây giờ, bạn đã sẵn sàng để thực hiện thay thế tìm tương tác. Để đơn giản, giả sử bạn chỉ muốn thay thế từ nhanh chóng bằng cách sử dụng siêu nhanh. Bây giờ, hãy gọi dired-do-query-thay-regapi. Nó sẽ nhắc bạn cho chuỗi regex và chuỗi thay thế. Nhập vào loại nhanh, nhập vào, sau đó là siêu siêu thị.
Bây giờ, emacs sẽ sử dụng mẫu của bạn và kiểm tra các tệp, đồng thời dừng lại và hiển thị cho bạn bất cứ khi nào có trận đấu xảy ra. Khi điều này xảy ra, emacs sẽ nhắc bạn và bạn có lựa chọn thực hiện thay đổi hoặc bỏ qua thay đổi. Để thực hiện thay đổi, gõ y. Để bỏ qua, gõ n. Nếu bạn chỉ đơn giản muốn emacs đi trước và thực hiện tất cả các thay đổi như vậy đối với tệp hiện tại, hãy nhập !.
Nếu bạn muốn hủy toàn bộ thao tác mà không lưu bất kỳ thay đổi nào bạn đã thực hiện, hãy nhập 【Ctrl + g】, sau đó thoát emacs bằng menu 〖Tệp ▸ Thoát Emacs.
Lưu tập tin đã thay đổi
Bây giờ, sau khi bạn trải qua thử thách trên, bạn cần phải thực hiện thêm một bước nữa và đó là lưu các tệp đã thay đổi.
Nếu bạn đang sử dụng emacs phiên bản 22 trở lên, hãy gọi ibuffer để chuyển sang chế độ liệt kê bộ đệm, sau đó nhập 【* u】 để đánh dấu tất cả các tệp chưa được lưu, sau đó nhập S để lưu tất cả. (đó là ca-s)
Nếu bạn đang sử dụng emacs phiên bản 21, thì bạn có thể thực hiện việc này: gọi bộ đệm danh sách, sau đó di chuyển con trỏ đến tệp bạn muốn lưu và nhập s. Nó sẽ đánh dấu các tập tin để lưu hành động sau này. Nhập u để bỏ đánh dấu. Khi bạn đã hoàn tất, hãy nhập x để thực hiện lưu tất cả các tệp được đánh dấu để lưu. (trong emacs, tập tin đã mở được gọi là bộ đệm bộ đệm. Bỏ qua những thứ khác ở đó.)
Thay thế cho các tùy chọn ở trên, bạn cũng có thể gọi save-some-buffers 【Ctrl + xs】. Sau đó, emacs sẽ hiển thị từng tệp chưa được lưu và hỏi bạn có muốn lưu nó không.
Lưu ý: regex của emacs không giống với Perl hoặc Python, nhưng tương tự nhau. Để biết tóm tắt và các mẫu phổ biến, xem: Emacs Regex.