Cách nhanh nhất để tải lại tệp .emacs của tôi khi tôi thực hiện thay đổi để tất cả các bộ đệm bị ảnh hưởng của tôi sẽ nhận các thay đổi đó?


27

Tôi biết C-x C-eđó là eval-last-sexpM-x eval-buffer, nhưng những điều này không phải lúc nào cũng đủ để nhận tất cả các thay đổi. Đôi khi bạn cần thực sự đóng các bộ đệm ở chế độ đã thay đổi cấu hình của chúng và những lần khác bạn cần khởi động lại hoàn toàn emacs. Có cách nào chung hơn để xử lý vấn đề này? Ngoài ra, có cách nào để khởi động lại emacs mà không mất bộ đệm đã mở và lịch sử tương tác không?


Giống như @ b4hand ban đầu tuyên bố đây thực chất là một câu hỏi dựa trên một trong những câu hỏi đề xuất: area51.stackexchange.com/proposeals/76571/emacs/76588#76588
tarsius

Câu trả lời:


16

Không, không thể tải lại cấu hình đã sửa đổi và để Emac hoạt động như thể những sửa đổi đó đã được áp dụng khi Emacs được tải. Nói tóm lại, các gói Emacs có quá nhiều tự do để điều này khả thi.

Bạn đề cập rằng một số chế độ chính không nhận thay đổi cấu hình. Một lý do có khả năng cho việc này là cho phép chế độ đặt một số biến cục bộ dựa trên các giá trị hiện tại của các tùy chọn nhất định. Nếu không bật lại chế độ như vậy trong mọi bộ đệm sử dụng nó, không phải tất cả các thay đổi sẽ được chọn. Và thậm chí sau đó hoàn toàn có khả năng một số thứ vẫn không thay đổi. Tỷ lệ làm việc này cao hơn khi các tùy chọn được tùy chỉnh bằng cách sử dụng một custom-set-variablesbiểu mẫu, nhưng điều này phải được thực hiện rõ ràng cho từng và mọi tùy chọn. Và cho đến nay chúng ta mới chỉ nói về các chế độ chính và các tùy chọn của chúng ...

Bạn có thể thử thực hiện một lệnh để kích hoạt lại chế độ chính của từng bộ đệm. Nhưng không chắc là nó sẽ kích hoạt đầy đủ tất cả các thay đổi và tệ hơn là nó sẽ vô hiệu hóa tất cả các chế độ nhỏ bạn đã bật thủ công và mất tất cả các loại trạng thái khác.

Vì lý do đó, tôi thậm chí sẽ khuyên bạn không nên lấy eval-buffertệp init của bạn để nhận càng nhiều thay đổi càng tốt. Đánh giá các cài đặt thay đổi riêng lẻ bằng cách sử dụng eval-last-sexpvà nếu điều đó không hoạt động, thì bạn phải khởi động lại Emacs.

Làm thế nào có thể được bảo tồn khi đóng Emacs là một câu hỏi khác nhau nên được hỏi riêng.


Tôi đã hỏi câu hỏi khởi động lại ở đây: emacs.stackexchange.com/questions/639/ trên
b4hand

3

Đôi khi bạn cần phải thực sự đóng bộ đệm ở chế độ đã thay đổi cấu hình của chúng

Gọi điện normal-modelà một cách hữu ích để kích hoạt lại tất cả các chế độ cho một bộ đệm nhất định, nếu bạn đã thực hiện các thay đổi đối với các hoặc các móc liên kết của chúng.

Bạn cũng có thể sử dụng revert-buffer(cuộc gọi nào normal-mode), giống như tải lại tệp mà không loại bỏ lịch sử hoàn tác.

(Bạn cũng có thể tải lại một tệp với C-xC-v, nhưng điều đó sẽ loại bỏ lịch sử hoàn tác của bạn.)

Khi M-x ibuffergõ chữ hoa, hoàn nguyên Vtất cả các bộ đệm được đánh dấu, trong khi viết hoa EWcho phép bạn đánh giá elisp tùy ý cho tất cả các bộ đệm được đánh dấu.

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.