Làm cách nào để Emacs tự động làm mới tất cả các bộ đệm khi tệp đã thay đổi trên đĩa?


176

Tôi có một chức năng tìm kiếm và thay thế toàn cầu không phải là emacs làm cho các tệp đĩa của tôi trở nên cập nhật hơn so với bộ đệm emacs của tôi (en masse). Có cách nào để bảo emacs làm mới tất cả các bộ đệm từ đĩa trong một cú trượt, thay vì phải làm từng cái một bằng cách tải lại tệp?

Cảm ơn! D


chế độ tự động hoàn nguyên tự động đã làm nên điều kỳ diệu ...
Jorge Aguilar

Câu trả lời:


229

(global-auto-revert-mode t)trong .emacs của bạn .


Điều này có vẻ tốt trong trường hợp tôi luôn muốn đồng bộ hóa, cảm ơn bạn! Tôi nghĩ rằng tôi cuối cùng sẽ sử dụng revbuff để tôi có thể tự mình quản lý xung đột (nếu không đôi khi tôi có thể mất các thay đổi chưa được lưu, cách thức công việc của tôi hiện đang hoạt động.)
Dave

2
Cảm ơn bạn! Tôi đang sử dụng kết hợp chế độ quay vòng và chế độ tự động hoàn nguyên. chế độ tự động hoàn nguyên hoạt động tuyệt vời khi tôi muốn ghi đè các thay đổi.
Natan Yellin

12
@Dave: (global-) chế độ tự động đảo ngược sẽ không hoàn nguyên tệp nếu bộ đệm tương ứng được sửa đổi, do đó sẽ không có nguy cơ bạn mất các thay đổi chưa lưu.
Lindydancer

Tôi đã đặt biến trong .emacs, nhưng khi tôi chỉnh sửa một số mã xcode, sau đó đọc tệp (đã mở) ở dòng đó, chỉnh sửa trong xcode không ở đó, cần Mx Revert-buffer handly. (Mac + emacs 24.3.1)
eric Phường

6
Hoạt động độc đáo khi chuyển nhánh với git. Cảm ơn!
Justin Leit Quay

10

Đây là một giải pháp thay thế nếu bạn đang sử dụng GUI Emacs (Của tôi là GNU Emacs 25.1.1 trên Windows 7):

  1. Nhấp vào "Tùy chọn" trong thanh thực đơn
  2. Chọn "Tùy chỉnh Emacs"
  3. Chọn "Tùy chọn đã lưu"
  4. Sau đó, bạn sẽ thấy trường tìm kiếm nơi bạn nhập "chế độ hoàn nguyên tự động hoàn nguyên" và nhấn nút "Tìm kiếm"
  5. Nhấp vào nút "Chuyển đổi" và đảm bảo nó đọc "bật" ở bên phải nút
  6. Nhấn nút "Áp dụng và lưu" ngay bên dưới trường tìm kiếm

Nếu bạn đã mở một vài tệp, bạn sẽ thấy hiệu ứng này được thực hiện ngay lập tức. Chúc may mắn!


3

Cảm ơn @Ashwin đã chỉ ra (global-auto-revert-mode t). Tôi thấy rằng Emacs sẽ không tự động cập nhật bộ đệm có tệp đã thay đổi trên đĩa chỉ với thay đổi này. Từ https://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html :

Theo mặc định, chế độ Tự động hoàn nguyên hoạt động bằng cách sử dụng thông báo tệp, theo đó các thay đổi trong hệ thống tệp được HĐH báo cáo cho Emacs. Bạn có thể vô hiệu hóa việc sử dụng thông báo tệp bằng cách tùy chỉnh biến tự động hoàn nguyên-sử dụng-thông báo thành giá trị không, sau đó Emacs sẽ kiểm tra thay đổi tệp bằng cách bỏ phiếu cứ sau năm giây. Bạn có thể thay đổi khoảng thời gian bỏ phiếu thông qua khoảng thời gian tự động hoàn nguyên biến.

Sau khi tôi thiết lập (auto-revert-use-notify nil), Emacs thực sự đã làm mới tất cả các bộ đệm cứ sau 5 giây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.