Một vài ý tưởng.
Trước tiên, nếu bạn thấy mình gọi một lệnh như lưu với tần suất đủ cao, bạn có thể xem xét ràng buộc khóa ngắn hơn cho lệnh. Ví dụ, tôi cũng thấy mình có cùng một "co giật", vì vậy bây giờ tôi sử dụng f2
thay vì C-x C-s
để lưu chỉnh sửa.
Chức năng mà tôi liên kết với f2
lưu mọi bộ đệm chưa lưu một cách vô điều kiện. Bạn có thể thấy hữu ích:
(defun force-save-all()
"Unconditionally saves all unsaved buffers."
(interactive)
(save-some-buffers t))
(global-set-key [f2] 'force-save-all)
Hiện tại, về vấn đề chính. Bạn có thể thử một cái gì đó như thế này (chú ý rằng force-save-all
được gọi):
(defun my-switch-to-buffer (buffer)
(interactive (list (read-buffer "Switch to buffer: " (cadr buffer-name-history) nil)))
(force-save-all)
(switch-to-buffer buffer))
(global-set-key "\C-xb" 'my-switch-to-buffer)
Tất nhiên, bạn cũng có thể liên kết các chức năng chuyển đổi đệm phím khác, giống như một phím chức năng, do đó nó là một hoạt động một thao tác bấm.
Tôi nghĩ rằng @seth có ý tưởng tuyệt vời về cách sử dụng lời khuyên, nhưng tôi nhận thấy rằng hướng dẫn sử dụng ELisp gợi ý rằng advice not be used for key bindings. Tôi không hoàn toàn chắc chắn tại sao đây là trường hợp, nhưng đó là những gì hướng dẫn cho thấy FYI.
Nguồn
2009-09-12 01:35:39
+1 từ tôi ... quên tệp đệm -name – seth
Hoàn hảo! Cảm ơn :) 6 năm sau và vẫn là một câu trả lời tuyệt vời –