Emacs/Emacsの便利な機能/編集モード

Emacsには,さまざまな形式のファイルを作成する際の環境を提供する編集モードがあります.

3.6.1 メジャーモード

``メジャーモード''はテキスト編集機能を大幅に変えるもので,1つのバッファでは複数のメジャーモードを利用できません.メジャーモードの切り替えには新しくメジャーモードを起動します.起動しているメジャーモードはモードラインの編集モードの部分に表示されます.次におもなメジャーモードを示します.


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モード -- (M-x latex-mode)

LaTeXモードはLaTeXのソースファイルを編集するためのものです.`.tex'の拡張子を持つファイルを読み込むか, M-x latex-modeと入力することにより起動できます.LaTeXモードでは通常のEmacsのコマンドの他に表3.5のコマンドが利用できます.


LaTeXモード特有のコマンド
キー操作 機能
M-{ 1組の中括弧を挿入する
M-} 一致していない中括弧の後へ移動する
C-c C-e begin{...}の後で入力すると対応するend{...}を挿入する
C-c C-o itemizeなどを入力するとそのbegin{...}からend{...}までを挿入する


Shell モード -- (M-x shell)

ShellモードはEmacsの中でシェルを起動し,UNIXコマンドが実行できるようにします.M-x shellと入力することにより起動できます.

3.6.2 マイナーモード

マイナーモードは,テキスト編集機能を大幅に変えるメジャーモードとは異なり,若干の機能の変更を行うモードです.マイナーモードはメジャーモードとは独立しており,またマイナーモードもそれぞれ独立して機能します.次におもなマイナーモードを示します.

Overwrite モード -- (M-x overwrite-mode)

Overwriteモードは,カーソルのある場所に入力する文字を上書きするものです.通常の設定ではこのモードはOFFになっています.この場合はカーソルのある場所の直前に入力文字が挿入されます.

ON/OFFの切り替えはM-x overwrite-modeと入力することによって行います.OverwriteモードがONの場合は,モード行のメジャーモードの右にOvwrtと表示されます.

また,Insertキーを押すとこのモードになります.もし文字が上書きされるような現象が起きた場合,Insertキーを押すか,M-x overwrite-modeと入力すれば回避できます.

Auto fill モード -- (M-x auto-fill-mode)

Auto fillモードは,入力する行がある一定の文字数よりも長くなったら改行を入れバッファ内での各行の長さを揃えるモードです.日本語では約35文字のところで改行されるようになります.1行の長さを変更するには,改行するところまでカーソルを移動しC-u C-x fと入力します.また,M-x auto-fill-modeと入力することによってON/OFFの切り替えができます.Auto fillモードがONの場合,モード行のメジャーモードの右にFillと表示されます.


一行が長いファイルの場合,電子メールで送ると文字化けしたり,LaTeXで処理できないなどの問題が起こることがあります.1行が一定の文字数よりも長くなったときには,適宜改行を入れるようにしてください.