Isso significa que a programação C está sendo executada sob prog-modee c-mode?
Não, porque, como você citará mais tarde:
Os modos principais são mutuamente exclusivos; cada buffer possui um e apenas um modo principal a qualquer momento.
Portanto, seu buffer pode estar apenas em um ou outro.
É prog-modeum modo universal para todos os programas?
Não, é um modo pai universal para todos os modos de programação.
Além disso, implica que prog-modeé um modo principal como c-mode.
Sim, prog-modeé derivado de um modo principal normal fundamental-mode. Da mesma forma, c-modeé derivado um modo principal normal prog-mode. A diferença é que, por prog-modesi só, é bastante simples e não se destina a ser ativado diretamente.
O que prog-modefaz aqui, é um modo menor, mas afirmado amplamente na parte do modo principal?
Não, é um modo principal normal. É fornecido como uma convenção para os principais autores do modo derivar seus modos e como uma conveniência para os usuários personalizarem mais facilmente todos os seus modos de programação.
Por exemplo, se um usuário deseja ativar show-trailing-whitespaceem todos os seus modos de programação, ele pode primeiro definir um gancho como o seguinte:
(defun my-show-trailing-space ()
"Enable `show-trailing-whitespace' in the current buffer."
(setq show-trailing-whitespace t))
Em vez de adicionar esta função ao gancho de modo de todos os modos de programação que eles usam, assim:
(mapc (lambda (hook)
(add-hook hook #'my-show-trailing-space))
'(c-mode-common-hook
emacs-lisp-mode-hook
perl-mode-hook
prolog-mode-hook
...))
Em vez disso, eles podem simplesmente adicioná-lo ao gancho de modo do modo pai, ou seja prog-mode-hook:
(add-hook 'prog-mode-hook #'my-show-trailing-space)
Como tal, prog-modefornece configurações comuns para todos os modos de programação derivados dele.