Cプログラミングがprog-mode
andの下で実行されているということc-mode
ですか?
いいえ、後で引用するように:
主要なモードは相互に排他的です。各バッファには、常に1つのメジャーモードしかありません。
したがって、バッファはどちらか一方にのみ存在できます。
あるprog-mode
すべてのプログラムのための普遍的なモードは?
いいえ、すべてのプログラミングモードで共通の親モードです。
さらに、prog-mode
がのようなメジャーモードであることを意味しますc-mode
。
はい、prog-mode
から派生した通常のメジャーモードですfundamental-mode
。同様c-mode
に、から派生した通常のメジャーモードですprog-mode
。違いは、それprog-mode
だけではまったく裸であり、直接有効にすることを意図していないことです。
prog-mode
ここで何をしますか、それはマイナーモードですが、メジャーモード部分で広く述べられていますか?
いいえ、通常のメジャーモードです。これは、メジャーモードの作成者がモードを派生させるための規則として、およびユーザーがすべてのプログラミングモードをより簡単にカスタマイズできるようにするための便宜として提供されています。
たとえば、ユーザーがshow-trailing-whitespace
すべてのプログラミングモードで有効にする場合、最初に次のようなフックを定義できます。
(defun my-show-trailing-space ()
"Enable `show-trailing-whitespace' in the current buffer."
(setq show-trailing-whitespace t))
この関数を、使用するすべてのプログラミングモードのモードフックに追加する代わりに、次のようにします。
(mapc (lambda (hook)
(add-hook hook #'my-show-trailing-space))
'(c-mode-common-hook
emacs-lisp-mode-hook
perl-mode-hook
prolog-mode-hook
...))
代わりに、親モードのモードフックに追加するだけですprog-mode-hook
。
(add-hook 'prog-mode-hook #'my-show-trailing-space)
そのため、prog-mode
そこから派生するすべてのプログラミングモードに共通の設定を提供します。