新参のユーザであれば、いろいろいじったり ちょっと試してみたい、
という理由だけでも Emacs を起動してみたいでしょう。
でも、ひとたび Emacs を起動してしまったら、
終了させたいだけなのに、どうしたらよいのか分からなくなるでしょう。
だから、まだ Emacs を使ったことがなければ、いまここでやってみてください。
シェルプロンプトで、emacs
とタイプして enter を打ってください。
Emacs が起動するでしょう。
起動しない場合は、インストールされていないか、
パスに含まれていないかのいずれかです。
いったん Emacs を起動したら、今度は終了方法を知る必要があります。
Emacs を終了するためのキー入力は C-x C-c
です。
C-x
という表記は、Ctrl
キーを押したまま
x
を押すことを意味しています。
この場合は、さらに Ctrl
を押したまま c
を押すことで
Emacs を終了できます。
Emacs で使われるキー入力は、初めのうちは、わけがわからなくて、
異質なもので、苦痛ですらあるかもしれません
-- 特に vi
ユーザであれば。
vi
と異なり、Emacs はテキスト編集とコマンド発行の
ための分離したモードというものは持っていません。
要約すると - emacs
で Emacs が起動します。
C-x C-c
で Emacs が終了します。
Emacs が起動したとき、Emacs は X のウィンドウ (もしも X Window System ではなくてコンソールで 実行しているならば、スクリーン) 全体を使い尽くすでしょう。 最上部に横に並んだメニュー、スクリーンのメイン部分にいくつかのテキスト、 最下部に 2 つの行があるのが見れるでしょう。
この ASCII による略図のようになります:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |For information about the GNU Project and its goals, type C-h C-p. | +----------------------------------------------------------------------+
注釈: Emacs は普通、スクリーン/ウィンドウ全体を占めます。
私は上の例では、ここの場所を節約するために小さく描写しています。
Emacs を起動するとまず、Emacs のウェルカムメッセージも
表示されます。
私はそれも省略して、``...
'' をその代わりに書いています。
ウェルカムメッセージは、簡単にオンラインヘルプと関連項目を
示すだけでなく、使用している Emacs の 正確なバージョンも示します。
Emacs の一番上のラインのインタフェースはメニューです。 もしも X を実行していれば、マウスでアクセスできる 昔ながらのプルダウンメニューであることがわかるでしょう。 さもなくば、メニューにアクセスするためにキーボード ショートカット (ここでは取り扱いません) を使う必要があります。
Emacs インタフェースの最下行の 2 行のうち、上の行は本質的には ステータスバーです。 そこは、作業しているバッファが Emacs のどのモードに なっているかについての情報や、他の多くの情報を含んでいます。 ひとまず、これはそういうものだと思っていてください。
最下行は ミニバッファ と呼ばれます。 そこは、ちょうど先ほど説明したステータスバーによって メインバッファと分けられています。 ミニバッファは Emacs の ``コマンドライン'' であると考えることができます。 そこは、Emacs に与えたコマンドが表示されたり、実行に対する反応として 状態メッセージが出力されたりする場所です。
私がステータスバーと呼んでいるものが、Emacs の関連文書では、 普通、モードラインと呼ばれていることに気付くでしょう。 そこは、現在の日付と時刻、行数、ファイルサイズ、そして ほとんど何でもそこで見たいと思っているものと同じように、 現在のモードについて Emacs が表示している場所です。
この節では、Emacs について読んだり使ったりする時に 遭遇するであろう、最も基本的な Emacs の用語を取り扱います。
いくつかのエディタとは異なり、Emacs でファイルを開いた時には、 そのファイル自体は入力作業中では ``open'' 状態になっていません。 その代わりに、Emacs はメモリ中の バッファ に ファイルを読み込みます。 バッファを編集してデータ作業を行っている間、ディスク上では 何も変化しません。 実際にバッファを保存する時だけ、ディスク上のファイルが更新されます。 この方法には利点も欠点もありますが、大切なことは、 このように動いていることを理解することだけです。
Emacs の文書、モード、パッケージ、その他で使われている ``バッファ''という用語を目にすることになるでしょう。 バッファは ``現在メモリ中にあるファイルのコピー'' を意味することを はっきりと認識しましょう。 そう、バッファは必ずしもディスク上の特定のファイルを指していなくても よいんです。 しばしば Emacs は、実行したコマンドの結果としてバッファを作ります。 そのようなバッファには、コマンドの結果、選択用のリストなどがあります。
Emacs 特有の言葉として、ポイント という言葉を しばしば見聞きするでしょう。 一般的な用語では、ポイントはカーソルです。 初めて Emacs に取り掛かる時は、ポイントとカーソルの間の 実際の区別はおそらく重要ではないです。 しかし、好奇心を押さえられないのであれば、それについては このように考えてください。 カーソルはポイントの視覚表現です。 カーソルはいつも現在のバッファの特定の文字の位置の``上''にあります。 一方、ポイントは、バッファ中の 文字の間の場所に存在します。 つまり、もしも単語 ``the'' の文字 `h' 上にカーソルがある場合、 ポイントは `t' と `h' の間にあるということができます。
多くの近頃のエディタと同様、Emacs は現在のバッファのある部分に 命令 (インデント、スペルチェック、カット、コピー、ペースト、…) を実行することを許しています。 キーボードやマウスを使ってテキストのブロックをハイライト (あるいは ``マーク'') することができ、テキストの選択されたブロックに 対して命令を実行することができます。 Emacs では、テキストのそのようなブロックのことを リージョン と呼びます。
さて、これは以前 GUI を使用したことのある人を少し混乱させるでしょう。 Emacs は GUI とウィンドウマネージャが一般的になるよりも ずっと以前から開発されていたことを思い出してください。
Emacs での ウィンドウ は、バッファが表示されている スクリーンの領域のことです。 最初に Emacs を起動したとき、スクリーンには 1 つのウィンドウがあります。 いくつかの Emacs の機能 (ヘルプやドキュメント) は、しばしば [ 一時的に ] Emacs のスクリーンに追加のウィンドウを開きます。
Emacs のウィンドウは GUI の感覚での X のウィンドウとは 何の関係もありません。 Emacs のバッファを表示するために追加の X のウィンドウを 開くことができ、2 つのファイルを横に並べて比較することもできます。 それらの新しい X のウィンドウは、Emacs 特有の言葉で フレーム と呼びます。 次を読んでください。
Emacs では、フレーム は Emacs のバッファが表示されている、 別々の X のウィンドウです。 しかし、その両方とも同じ Emacs のセッションの一部です。 その振る舞いは、Netscape Navigator で Alt+N を押した時に 起こることと、すこし (ほとんどではない) 似ています。
この節では Emacs のキーボード操作の基本を取り扱います。 すべての強力なエディタと同様、Emacs でできることのすべては、 少ないキー入力に割り当てられています。
もしも vi
ユーザであれば、上の行、下の行、
文字の前方向、文字の後方向への移動に k, j, l, h
キーを使う考えに慣れているかもしれません。
事実、vi
で使用可能な多くのキーの組合せを使って
ファイルを快適に操作できるようになるまでに、
練習に数時間か数週間かけたかもしれません。
Emacs も同じです。
学習するキー入力とコマンドは違います。
ちょうど vi
のように、多くの仕事をこなすには
基本を習得する必要があるだけです。
時が経つにしたがって、ゆっくりと知識を広げて、物事を進める
より速い方法を見つけることができるようになるでしょう。
学習を始めて間もなくすると、Emacs は複数キーの組合せを
大量に使わせるようになります。
Emacs は vi
のようなモードを持ったエディタではないので、
カーソルを動かしたりコマンドを実行したりする前に、
``コマンドモード'' または ``編集モード'' のどちらにあるのか
考える必要はありません。
その代わり、正しいキーの組合せを押すことで、(普通は) Emacs が
命令を実行します。
Emacs で最も良く使うキーは、普通 C
(Control または Ctrl)
や M
(Meta) として文書中で略して書かれます。
最近の PC のほとんどは Ctrl
と表示された 1 つ以上の
キーを持っているのですが、Meta
と表示されたキーを持つものは
ほとんどありません。
心の中で、Meta キーを Esc
または Alt
のどちらかに入れ換えたいでしょう。
多くの標準構成では、Esc と Alt の両方とも、本質的に同じことをします。
Emacs に関連する文書で C-x f
という記述を見つけた場合、
それは ``Ctrl-x を押してから f を押す'' ことを意味します。
もし M-x shell
のような記述を見つけた場合、
それは ``alt-x を押してから単語 shell を入力する'' ことを意味します。
初心者にとても役に立つコマンドは、M-x apropos
または C-h a
です。
apropos は、すべての関数に対してEmacs のオンライン文書を調べ、
入力した正規表現に対して検索します。
フレーム (frame) に関連したすべてのコマンドを発見する最良の方法は、
単に、C-h a
としてから frame
とします。
さあ、これでもうキー操作の変てこな省略表記のことは分かったでしょうから、 バッファ内の移動に関する一般的なキー入力の一覧をここに示します:
キー入力 動作 ----------------------------------- C-p 1 行上に移動 C-n 1 行下に移動 C-f 1 文字前に移動 C-b 1 文字後に移動 C-a 行の先頭に移動 C-e 行の末尾に移動 C-v 1 画面下に移動 M-v 1 画面上に移動 M-f 1 単語前に移動 M-b 1 単語後に移動 M-< バッファの先頭に移動 M-> バッファの末尾に移動 C-g 現在の操作を終了 -----------------------------------
予想の通り、カーソルキー (あるいは矢印キー)
は普通はご期待の通りに働きます。
Backspace
はそうでないかもしれません。
それには、また別の話があるのです。 :-(
さて、これでバッファ内での移動方法はわかりました。 ファイルを開いたり保存したりする方法はどうするのでしょう? 検索はどうすればいいのでしょう? これらは基本的なコマンドです。
それらのコマンドの説明にすぐにゆく前に、 これらがどのように機能しているかについて簡単に触れておく必要があるでしょう。
Emacs のすべての ``コマンドキー入力'' (M-x 何か
あるいは C-何か
) は実際、Emacs の一部である関数への
ショートカットになっています。
それらの関数は、M-x 関数名
を入力して Enter
を押すと、関数の機能を呼べます。
キーボードショートカット (もしあれば) でも、その関数を利用できます。
例えば、ディスクにバッファを保存する関数は save-buffer
と呼ばれます。
デフォルトでは、それは C-x C-s
にも割り当てられています。
つまり、現在のバッファを保存するためには、ショートカット (C-x C-s) か
M-x save-buffer
のどちらかを使えばよく、どちらでも
全く同じ結果が得られます。
一般的な関数のすべては、デフォルトでキーボードショートカットを 持っています。 それらのいくつかを次に列記します。
キー入力 関数 説明 ------------------------------------------------------------------- C-x C-s save-buffer 現在のバッファをディスクに保存する。 C-x u undo 最後の操作を取り消す。 C-c C-f find-file ディスクからファイルを開く。 C-s isearch-forward 文字列を前方検索する。 C-r isearch-backward 文字列を後方検索する。 replace-string 文字列の検索と置換を行う。 replace-regexp 正規表現を使って、検索と置換を行う。 C-h t help-with-tutorial インタラクティブなチュートリアルを使う。 C-h f describe-function 関数のヘルプを表示する。 C-h v describe-variable 変数のヘルプを表示する。 C-h x describe-key キー入力が何をするものであるか表示する。 C-h a apropos 文字列/正規表現のヘルプを検索する。 C-h F view-emacs-FAQ Emacs の FAQ を表示する。 C-h i info Emacs の文書を読む。 C-x r m bookmark-set ブックマークを設定する。検索に役立つ。 C-x r b bookmark-jump ブックマークに移動する。 -------------------------------------------------------------------
たくさんの関数を試していくうちに、
多くのものが、さらなる入力を促すことに気付くでしょう。
それら入力はいつもミニバッファ内で行われます。
これは vi
で :
コマンドを、あるいは
お気に入りの Unix シェル内のコマンドの大部分を使ったときと似ています。
Emacs は文字通り、利用可能な何百もの組み込み関数を持っています。 上の一覧は、私がいつものように使っているものを代表する、 ごく小さなサンプルです。 私が上で簡単に述べたものについての、より完全な利用可能な関数の一覧と 完璧な文書については、オンラインヘルプを見てください。
多くの一般的な Unix シェル (bash, csh, tcsh, ...) と同様に、
Emacs は Tab
キーによるコマンド補完を提供しています。
実際、bash のコマンド補完は Emacs をまねして作られました。
bash のこの機能を使っているならば、すでに手に馴染んでいることでしょう。
たとえば、M-x search
としてから Tab
を押してみてく
ださい。Emacs はハイフンを追加するはずです。この挙動は、複数の補完候補
があり、全ての場合においてハイフンが続くことを示しています。
Tab
をもう一度押すと、補完候補の一覧が表示されます。
新しいウィンドウ に表示されるという点に注目してください。
その結果、一時的に、表示部が 2 つのウィンドウに分かれます。1つは編集
中のバッファを含むウィンドウで、もう一つのウィンドウには ``search-''
の補完候補一覧が表示されていると思います。
補完処理を終了して新しいウィンドウを閉じたいのであれば、C-g
を押しても構いません。
Emacs は、すべての人が知るべき機能と関数の基本的な編集作業を 一通り学ぶための、オンラインチュートリアルを含んでいます。 それはまた、Emacs で他のヘルプ機能を使う方法も説明しています。
もしも Emacs の習得に真面目に取り組むつもりであれば、
チュートリアルを一通りやってみることを強く勧めます。
上の表で示した通り、C-h t
でチュートリアルに入れます。
チュートリアルはそれ自身がやり方の説明になっており、まさに Emacs
を始めようとする人がねらいです。
訳注: 日本語チュートリアルを実行するには、
C-u M-x help-with-tutorial
( または C-u C-h t
) の後、
Japanese
を入力します。
もしも X で Emacs を実行しているならば、Help と表示されたメニューが メニューバーの一番右にあることに気づくでしょう。 Help メニューを調べれば、キーボードショットカットが付いている項目が あること、それがメニューの右側に一覧表示されていることがわかるでしょう。
最後に、Emacs で利用できる文書の量を見るために、Info
(Emacs の文書ブラウザ) を起動する M-x info
または C-h i
を試してみるべきでしょう。