Next: , Up: プログラムの編集   [Contents][Index]


28.1 プログラミング言語のためのメジャーモード

Emacsには、プログラミング言語のために特化した、多くのメジャーモード(メジャーモードを参照してください)があります。プログラミング言語に関連したモードは通常、式の構文、インデントの慣習的ルール、言語の構文をハイライトする方法、関数定義の開始と終了を検索する方法を指定します。プログラムをコンパイルしたり、デバッグするための機能をもつ場合もあります。各言語にたいするメジャーモード名は、言語名により名づけられます。たとえばCプログラミング言語にたいするメジャーモードは、c-modeです。

Emacs has programming language modes for Lisp, Scheme, the Scheme-based DSSSL expression language, Ada, ASM, AWK, C, C++, C#, Elixir, Fortran, Icon, IDL (CORBA), HEEx, IDLWAVE, Java, Javascript, Lua, M4, Makefiles, Metafont (TeX’s companion for font creation), Modula2, Object Pascal, Objective-C, Octave, Pascal, Perl, PHP, Pike, PostScript, Prolog, Python, Ruby, Simula, SQL, Tcl, TypeScript, Verilog, and VHDL. The recommended mode for Perl is called CPerl mode. Modes are also available for the scripting languages of the common GNU and Unix shells, and MS-DOS/MS-Windows ‘BAT’ files, JSON, DNS master files, CSS (Cascading Style Sheets), Dockerfiles, CMake files, and various sorts of configuration files.

理想的には、Emacsは編集したいと望むすべてのプログラミング言語のためのメジャーモードをもつべきです。しかし、もしあなたのお気に入りの言語のためのモードがない場合、それはEmacsとともに配布されないパッケージで実装されているかもしれません(Emacs Lispパッケージを参照してください)。または、あたたが貢献することもできます。

Emacsが‘tree-sitter’ライブラリーとともにコンパイルされていれば、このライブラリーにもとづく複数の編集モードが提供されます。これらは‘tree-sitter’がもたらすインクリメンタルな解析機能を利用するモードです。これらのモードにはc-ts-modepython-ts-modeのように名前に‘-ts-’が含まれています。

ほとんどのプログラミング言語では、インデントはプログラム構造を示すために行ごとに異なります。したがって、ほとんどのプログラミング言語のモードでは、TABとタイプすることにより、カレント行のインデントが更新されます(プログラムのインデントを参照してください)。さらにDELは通常、タブをあたかも等価な数のスペースであるかのように扱って、後方に削除するbackward-delete-char-untabifyにバインドされているので、空白文字がスペースなのかタブなのか気にせずに、インデントを1列ずつ削除できます。

プログラミング言語のモードに入ることにより、フック変数prog-mode-hookに指定されたカスタムLisp関数と、その後でモード自身のモードフックが実行されます(メジャーモードを参照してください)。たとえばCモードに入ることにより、prog-mode-hookc-mode-hookが実行されます。フックについての情報は、フックを参照してください。

Adaモード(Ada Mode in Ada Modeを参照してください)、C/C++/Objective C/Java/Corba IDL/Pike/AWKモード(CC Mode in CC Modeを参照してください)、Octaveモード、VHDLモード、IDLWAVEモード(IDLWAVE in IDLWAVE User Manualを参照してください)のマニュアルが利用可能です。

This page has generated for branch:work/emacs-30_11e7ae3964e192b0e4bcc437a04278ee727e720b, commit:21d1f04ad721643c0229c9b6eb5285cb9fae6b99 to check Japanese translation.