¿Significa que la programación en C se ejecuta bajo prog-modey c-mode?
No, porque, como luego citan:
Los modos principales son mutuamente excluyentes; cada búfer tiene uno y solo un modo principal en cualquier momento.
Por lo tanto, su búfer solo puede estar en uno u otro.
¿Es prog-modeun modo universal para todos los programas?
No, es un modo primario universal para todos los modos de programación.
También implica que prog-modees un modo principal como c-mode.
Sí, prog-modees un modo principal normal derivado de fundamental-mode. Del mismo modo c-modees un modo mayor normal derivado de prog-mode. La diferencia es que prog-modesolo está bastante desnudo y no está destinado a habilitarse directamente.
¿Qué hace prog-modeaquí? ¿Es un modo menor pero se menciona ampliamente en la parte del modo mayor?
No, es un modo mayor normal. Se proporciona como una convención para que los principales autores de modos deriven sus modos, y como una conveniencia para que los usuarios personalicen más fácilmente todos sus modos de programación.
Por ejemplo, si un usuario desea habilitar show-trailing-whitespaceen todos sus modos de programación, primero puede definir un enlace como el siguiente:
(defun my-show-trailing-space ()
"Enable `show-trailing-whitespace' in the current buffer."
(setq show-trailing-whitespace t))
En lugar de agregar esta función al enlace de modo de cada modo de programación que usan, así:
(mapc (lambda (hook)
(add-hook hook #'my-show-trailing-space))
'(c-mode-common-hook
emacs-lisp-mode-hook
perl-mode-hook
prolog-mode-hook
...))
En su lugar, simplemente pueden agregarlo al enlace de modo del modo principal, es decir prog-mode-hook:
(add-hook 'prog-mode-hook #'my-show-trailing-space)
Como tal, prog-modeproporciona configuraciones comunes para todos los modos de programación derivados de él.