chế độ toàn cầu tự động hoàn nguyên dường như không hoạt động?


7

Tập tin init của tôi bao gồm

(setq global-auto-revert-mode t)

và tôi có thể xác nhận điều đó đúng với Ch v. Nhưng tôi vẫn phải hoàn nguyên thủ công tất cả các tệp của mình bằng bộ đệm hoàn nguyên bất cứ khi nào tôi thay đổi các nhánh git. Tôi thậm chí còn cố gắng lưu và nhận được dấu nhắc "tập tin thay đổi trên đĩa". Bất kỳ đề xuất cho làm thế nào để gỡ lỗi này?


Thay vào đó, hãy thử đặt cái này vào init của bạn:(global-auto-revert-mode 1)
Kaushal Modi

@kaushalmodi không có may mắn (tôi sẽ thực sự ngạc nhiên)
djechlin

Nó có thể là một vấn đề với auto-revert-interval? Tôi sử dụng nó và nó hoạt động cho tôi, ngoại trừ các tập tin trên tramp.
Swarnendu Biswas

Trông giống như một lỗi xuất hiện trong 24.5 và 25.0. @SwarnenduBiswas bạn đang trên emacs 24.4?
Kaushal Modi

@djechlin Tôi đã xác minh bằng các phiên emacs -Q rằng chế độ hoàn nguyên tự động không hoạt động trên emacs 24.5 và 25.0 nhưng hoạt động tốt vào ngày 24.4. Bạn ở phiên bản nào?
Kaushal Modi

Câu trả lời:


15

Một chế độ nhỏ không được bật / tắt bằng cách đặt một biến. Biến chế độ nhỏ nên được sử dụng để kiểm tra trạng thái "bật chế độ", không đặt trạng thái chế độ. Nếu giá trị của nó là t, chế độ phụ được bật, chế độ khác sẽ tắt.


Xem đoạn trích dưới đây để xem cách kiểm soát bất kỳ chế độ nhỏ nào. Thay thế MINOR-MODE-NAMEbằng tên chế độ nhỏ thực tế mà bạn đang xử lý ( global-auto-revert-namenhư trường hợp trong câu hỏi).


Kích hoạt chế độ nhỏ

Sử dụng elisp

Trực tiếp

(MINOR-MODE-NAME)
;; or
(MINOR-MODE-NAME 1)

Dựa trên kích hoạt hook

(add-hook 'SOME-HOOK #'MINOR-MODE-NAME)

Vô hiệu hóa một chế độ nhỏ

Sử dụng elisp

Trực tiếp

(MINOR-MODE-NAME 0)
;; or
(MINOR-MODE-NAME -1)

Dựa trên kích hoạt hook

(add-hook 'SOME-HOOK (lambda () (MINOR-MODE-NAME -1)))

Chuyển sang chế độ nhỏ

Tương tác

M-x MINOR-MODE-NAME

Sử dụng một ràng buộc chính

(global-set-key (kbd "<KEY>") #'MINOR-MODE-NAME)

Sử dụng elisp (không tương tác)

(MINOR-MODE-NAME 'toggle)

Nguồn


Tôi đã chạy vào một số chế độ mà bạn phải vượt qua t hoặc nil thay vì số.
Joseph Garvin

@JosephGarvin Có thể đáng để tìm hiểu các chế độ đó là gì .. và có thể gửi báo cáo lỗi để khắc phục sự không nhất quán đó nếu trên thực tế chúng được xác định là chế độ nhỏ?
Kaushal Modi

Câu trả lời rất trừu tượng. Tôi không biết làm thế nào để sử dụng nó.
ctrl-alt-delor

@ ctrl-alt-delor Chế độ nhỏ nào bạn đang cố kiểm soát đã đưa bạn đến câu trả lời này?
Kaushal Modi

Một trong câu hỏi. ( global-auto-revert-mode)
ctrl-alt-delor

3

Bạn không đặt biến bằng cách sử dụng setq, bạn gọi hàm:

(global-auto-revert-mode)

Tôi đang tự hỏi làm thế nào khác với (global-auto-revert-mode 1). Ngoài ra nếu bạn đang thêm điều này vào init của mình, bạn thậm chí không cần đối số đó. Chỉ (global-auto-revert-mode)nên đủ. Kiểm tra bài viết trên blog của Xah để biết thêm.
Kaushal Modi

Như với bất kỳ chế độ nào được xác định bằng cách sử dụng define-global-minor-mode, các giá trị hợp lệ duy nhất là số niltoggle. Thực tế là nó thoạt động chỉ là do thực tế là prefix-numeric-valuekhông nghẹt thở và đối xử với nó như thế nào 1.
Lindydancer

@Lindydancer Vâng, tôi muốn djechlin làm rõ lý do tại sao chuyển qua 1làm đối số không hoạt động .
Kaushal Modi

@kaushalmodi Tôi vẫn còn setq-ing - Tôi nghĩ bạn chỉ thay đổi t thành 1, tôi đã bỏ qua sự thay đổi từ setq sang gọi hàm.
djechlin

@djechlin Cảm ơn đã làm rõ. Nhưng để làm rõ và nhất quán, bạn nên chuyển nó thành một đối số 1hoặc không có gì nếu bạn muốn kích hoạt chế độ nhỏ đó từ elisp trong init của bạn.
Kaushal Modi

1

tự động hoàn nguyên chỉ hoạt động cho các bộ đệm không được sửa đổi. Vì vậy, ít nhất là đối với "cố gắng lưu và nhận tệp thay đổi trên dấu nhắc đĩa", hành vi bạn mô tả là bình thường.


Tôi đã mở cùng một tệp trong một ví dụ emacs 25.0 và emacs 24.4 (cả hai đều có -Qtùy chọn) và đã làm M-x global-auto-revert-modecả hai. Từ thiết bị đầu cuối khi tôi lặp lại một số chuỗi ( echo 1234 >> somefile.txt) đến tệp đó, chỉ có bộ đệm emacs 24.4 tự động hoàn nguyên.
Kaushal Modi

Vậy thì làm ơn M-x report-emacs-bug.
Stefan


"Lỗi" đã được giải quyết bởi chính nó .. có lẽ là một vấn đề với glib trên hệ thống của tôi.
Kaushal Modi
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.