第 3 章 Emacs 52
3.4 Tips
前章まででは編集などについて解説してきましたが,本章ではEmacsのより深い機能や便利な コマンドについて解説します.
3.4.1 画面の分割
Emacsではウィンドウをいくつかに分割することができます.分割した領域に別々のバッファ
を読み込むと別のファイルを参照しながらファイルの編集を行うことができます.画面を分割すれ ば作業効率を上げる事ができるので覚えると良いでしょう.例として図3.4を見てください,この ようなことができます.分割のためのコマンドは表3.7のようになります.
図3.4: Emacs分割例
表3.7: 画面分割に関するコマンド コマンド 機能
C-x 0 カーソルのあるウインドウを閉じる
C-x 1 カーソルのあるウインドウ以外を閉じる
C-x 2 ウインドウを水平方向に分割
C-x 3 ウインドウを垂直方向に分割
C-x o カーソルの次のウインドウに移動
C-x b ウインドウに割り当てるバッファを切り換える.
どのバッファを表示するかはEmacsが尋ねてくる
C-x C-b 現在作業できるバッファのリストを表示する.必要な所にカーソルを
移動して f を押すと,そのバッファがウインドウに表示される
C-x k ウインドウに表示されているバッファを削除
バッファを切り替える時は,C-x C-bで現在のバッファリストを表示し,C-x bと入力した後,作 業したいバッファの名前を入力して,バッファを切り替えましょう.メニューバーのBuffersから も選ぶ事ができます.
3.4.2 Emacs からのシェル操作
プログラムなどを書いている際にプログラムファイルを保存して,ほかのshellの画面に行きプ ログラムをコンパイル,実行する,ということすると思いますが,この時の画面遷移が面倒です.
もしこれを一つのshell画面上で実現できたら便利です.これをEmacsでは以下のようなコマンド を用いることで実現することができます.
M -x shell
3.4.3 モード
プログラムを書く時などに便利な機能としてモードというものがあります.モードとは,編集 するテキストに応じてEmacsの振舞いを適応させるものです.これは例えばJavaというプログ ラミング言語のコードを書く際に,java-modeを使うとJava言語の構文の強調をしてくれるな ど,書くための手助けをしてくれます.モードにはメジャーモード(major-mode)とマイナーモー
ド(minor-mode)の二つがあります16.大まかな認識としてはテキストに対しメジャーモードで
Emacsをその種類のテキストに特化させ,マイナーモードでユーザにあわせた細かい適応をさせ
ます.詳しい話をすれば,メジャーモードは排他的でありユーザーが意図してどれを使うかを選択 する事はほとんどありません17,マイナーモードはメジャーモードと反対に強調的であり原則的に は他のマイナーモードに左右されずマイナーモードを使う事ができます,そしてユーザーがオン/
オフを管理します.
表3.8に使用できるモードの一例を示します.
表3.8: モードの一例
モード名 説明
c-mode C言語を扱うメジャーモード
perl-modeまたはcperl-mode Perlのためのメジャーモード
java-mode Javaのためのメジャーモード
html-helper-mode HTMLファイルを作成する際に用いるメジャーモード
whitespace-mode TABやSpaceを可視化するマイナーモード
tex-mode TEX(第6章参照)のためのメジャーモード
表3.8以外にもモードが存在します.自分で調べてインストールしてみるのもいいでしょう.
続いてこのモードをどのように使うかを示します.以下のように入力することでモードをオンに します.
16ちなみに編集の節で書いた,上書きモードはマイナーモードに属する物です
17ファイルに拡張子がついていないか間違った物がついていたという場合などを除き
M -x [ mode - name ]
副モードの場合だとエコーエリアに「[モード名称]mode enabled(もしくはdisabled)」と出ます.
これで指定されたモードがオンになります.ですが,Emacsがファイルの拡張子に応じて主モー ドを選択してくれるのがほとんどなので,手動でモードを有効にする事は副モードを選択する際ぐ らいでしょう.
3.4.4 package.el
Emacs24.318からはPackage.elというLinuxでのパッケージ管理ツールに類する物が存在しま す.これを使用すると,コマンドを打つだけで世界中のEmacsユーザたちが作った拡張機能を使 用する事ができるようになります. 「M-x package-install」を実行した後に,自分の入れたい拡 張機能の名前を打ちましょう.もしくは入れられる拡張機能のリストを見て入れたいかもしれま せん, その場合は「M-x package-list-packages」を使ってくださいこのようなコマンドを使い,
auto-complete19やundo-tree20といったEmacsを便利にする拡張機能を入れられます.