Tôi có một câu hỏi về Emacs Lisp. Sự khác biệt giữa setq và setq-default là gì?
Các hướng dẫn cho biết setq có hiệu lực trong bộ đệm cục bộ trong khi setq-default ảnh hưởng đến tất cả các bộ đệm.
Ví dụ: nếu tôi đã viết (setq a-var a-vars-value) trong init.el , tôi thấy sau khi khởi động Emacs và mở một bộ đệm mới, a-var cũng ở đó và giá trị của nó là a-vars-value . Tôi nghĩ rằng nó không được cho là ở đó. Có vẻ như không có sự khác biệt giữa setq và setq-default .
Có điều gì đó sai với sự hiểu biết của tôi?
Ví dụ:
Tôi đã viết (setq hello 123) trong tệp init.el và tôi chạy abuffer emacs trong shell, sau đó tôi nhập "hello Cx Ce" , nó hiển thị "123". Điều tương tự cũng xảy ra khi tôi chạy điều này trong tất cả các bộ đệm mới.
Tôi đã viết (setq tab-width 4) trong tệp init.el. Khi tôi chạy Cx Ce theo chiều rộng tab , nó hiển thị "8" (Chế độ hiện tại là 'Văn bản'). Tuy nhiên, khi tôi sử dụng (setq-default tab-width 4) , nó hiển thị "4". Tôi không thể giải thích hiện tượng này.