Isso significa que a programação C está sendo executada sob prog-mode
e 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-mode
um 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-mode
si só, é bastante simples e não se destina a ser ativado diretamente.
O que prog-mode
faz 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-whitespace
em 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-mode
fornece configurações comuns para todos os modos de programação derivados dele.