Có nghĩa là lập trình C đang chạy theo prog-modevà c-mode?
Không, bởi vì, như bạn trích dẫn sau:
Các chế độ chính là loại trừ lẫn nhau; mỗi bộ đệm có một và chỉ một chế độ chính bất cứ lúc nào.
Vì vậy, bộ đệm của bạn chỉ có thể ở một hoặc khác.
Là prog-modemột chế độ phổ quát cho tất cả các chương trình?
Không, nó là chế độ cha phổ quát cho tất cả các chế độ lập trình.
Nó cũng ngụ ý rằng đó prog-modelà một chế độ chính như c-mode.
Có, prog-modelà một chế độ chính bình thường có nguồn gốc từ fundamental-mode. Tương tự c-modelà một chế độ chính bình thường có nguồn gốc từ prog-mode. Sự khác biệt là prog-modemột mình khá trống trải và không có ý định kích hoạt trực tiếp.
Điều gì prog-modelàm ở đây, nó là một chế độ nhỏ nhưng được nêu rất nhiều trong phần chế độ chính?
Không, nó là một chế độ chính bình thường. Nó được cung cấp như một quy ước cho các tác giả chế độ chính để lấy ra các chế độ của họ và để thuận tiện cho người dùng dễ dàng tùy chỉnh tất cả các chế độ lập trình của họ.
Ví dụ: nếu người dùng muốn kích hoạt show-trailing-whitespacetrong tất cả các chế độ lập trình của họ, trước tiên họ có thể xác định một hook như sau:
(defun my-show-trailing-space ()
"Enable `show-trailing-whitespace' in the current buffer."
(setq show-trailing-whitespace t))
Thay vì thêm chức năng này vào móc chế độ của mọi chế độ lập trình họ sử dụng, như vậy:
(mapc (lambda (hook)
(add-hook hook #'my-show-trailing-space))
'(c-mode-common-hook
emacs-lisp-mode-hook
perl-mode-hook
prolog-mode-hook
...))
Thay vào đó, họ có thể chỉ cần thêm nó vào hook chế độ của chế độ cha, nghĩa là prog-mode-hook:
(add-hook 'prog-mode-hook #'my-show-trailing-space)
Như vậy, prog-modecung cấp các cài đặt chung cho tất cả các chế độ lập trình có nguồn gốc từ nó.