Emacsには,さまざまな形式のファイルを作成する際の環境を提供する編集モードがある.
メジャーモードはテキスト編集機能を大幅に変えるもので,ひとつのバッファで複数のメジャーモードを利用できない.メジャーモードの切り替えには新しくメジャーモードを起動する.起動しているメジャーモードはモードラインの編集モードの部分に表示される.次に主要なメジャーモードを示す.
C モード -- (M-x c-mode), Java モード -- (M-x java-mode) CモードはC言語のソースコードを,JavaモードはJava言語のソースコードを編集するためのものである.Cモードは.cの拡張子を持つファイルを読み込むか, M-x c-modeと入力して起動できる.また,Javaモードは.javaの拡張子を持つファイルを読み込むか, M-x java-modeと入力して起動できる.次にCモード,Javaモードの主な機能を示す.
C言語およびJavaでは,関数定義の中や制御文の中ではプログラムを見やすくするために字下げを行うのが一般的である.CモードおよびJavaモードでは行頭で<TAB> を入力することで字下げを自動的に判断する.標準の設定では,4桁ずつ字下げ が行われる.
C言語およびJavaでは開き中括弧`{'と閉じ中括弧`}'は,数が対応していなければならないが,CモードおよびJavaモードではその対応を確認する.閉じ中括弧を 入力すると対応する開き中括弧までカーソルが飛び,対応が確認できる.開き中括弧が画面外にある場合には,エコーエリアに対応する開き中括弧のある行が表示される.
CモードおよびJavaモードでは通常のEmacsの移動コマンドの他に,関数の間を移動するコマンドが利用できる.カーソルが関数内にあるときに,<CTRL>を押しながら M-aと入力するとその関数の先頭にカーソルが移動し,カーソルが関数外にあるときは,1つ前の関数の先頭に移動する.同様に<CTRL>を押しながらM-eを入力すると,カーソルが関数内にあるときはその関数の直後の行に移動し,カーソルが関数外にあるときには,次の関数の直後の行に移動する.
関数内にカーソルがあるときに,<CTRL>を押しながらM-hを入力すると関数の最後にマークがセットされカーソルが関数の先頭に移動する.1つの関数全体を移動したり消去する場合はこれを利用して,C-wを入力して削除し関数全体の内容をキリングバッファに移動するとよい.
LATEXモードはLATEXのソースファイルを編集するためのものである. .texの拡張子を持つファイルを読み込むか,M-xlatex-modeと入力することにより起動できる.LATEXモードでは通常のEmacsのコマンドの他に表3.5のコマンドが利用できる.
|
ShellモードはEmacsの中でシェルを起動し,UNIXコマンドが実行できるようにする.M-x shellと入力することにより起動できる.
マイナーモードは,テキスト編集機能を大幅に変えるメジャーモードとは異なり,若干の機能の変更を行うモードである.マイナーモードはメジャーモードとは独立しており,またマイナーモードもそれぞれ独立して機能する.次に主要なマイナーモードを示す.
Overwriteモードは,カーソルのある場所に入力する文字を上書きするものである.通常の設定ではこのモードはOFFになっている.この場合はカーソルのある場所の直前に入力文字が挿入される.
ON/OFFの切り替えはM-x overwrite-modeと入力することによって行う.OverwriteモードがONの場合は,モード行のメジャーモードの右にOvwrtと表示される.
また,Insertキーを押すとこのモードになる.もし文字が上書きされるような現象が起きた場合,Insertキーを押すか,M-xoverwrite-modeと入力すれば回避できる.
Auto fillモードは,入力する行がある一定の文字数よりも長くなったら改行を入れバッファ内での各行の長さを揃えるモードである.日本語では約35文字のところで改行されるようになる.1行の長さを変更するには,改行するところまでカーソルを移動しC-u C-x fと入力する.また, M-x auto-fill-modeと入力することによってON/OFFの切り替えができる.Auto fillモードがONの場合,モード行のメジャーモードの右にFillと表示される.