tutorial_3 のバックアップ差分(No.2)



  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[emacs]]
[[WindowsユーザーのためのEmacs入門(xyzzyによる)]]

*コマンドの拡張
================

Emacs には、コントロール文字やメタ文字に割当てられるよりもずっとずっと
多くのコマンドがあります。これらを扱うために、拡張(eXtend)コマンドを
使います。それには、以下の2つの種類があります。

     C-x     文字による拡張。続けて一文字を入力します。
     ESC x   名前による拡張。続けてコマンドの名前を入力します。

これらは、一般的には便利だけれども、これまで見てきたものほどは頻繁に用
いられないコマンドです。C-x C-f (ファイルを開く)や C-x C-s(ファイル
をセーブ)はこの仲間です。他に、C-x C-c(Emacs を終了)もそうです。C-x
C-c に関しては、それまでに加えた変更が無くなるのを心配する必要はありま
せん。Emacs を終了させる前に、変更された各ファイルをセーブするかどうか
聞いてきますから。

C-z は「一時的に」 Emacs を抜けるコマンドです。また同じ Emacs セッショ
ンに戻ることができます。

それができるシステム上なら、C-z は Emacs を「中断」させます。つまり 
Emacs を終了することなく、コマンドシェルに戻ることができます。大方の標
準的なシェルなら、`fg' コマンドもしくは `%emacs' によって Emacs を再開
できます。

「中断」機能を実装していないシステムでは、C-z は Emacs の下で走るサブ
シェルを作り、他のプログラムを走らせてからまた Emacs に戻ることができ
るようにします。この場合本当に Emacs から抜け出るわけではありませんの
で、シェルコマンドの `exit' がそのサブシェルから Emacs に戻る普通のや
り方です。

C-x C-c はログアウトしようと思う時に使うものです。メールツール(mail 
コマンド等)やその他の様々なアプリケーションプログラムが起動した Emacs 
から抜け出る場合に使うのも正しいやり方です。これらのプログラムは Emacs 
の中断にどう対処して良いか知らないでしょうから。しかしながら、普通の場
合は、ログアウトしようとしない限りは Emacs を終了させるよりは C-z で中
断させる方が良いでしょう。

C-x コマンドはたくさんあります。これまでに、以下を学びました。

	C-x C-f   ファイルを開く(Find)
	C-x C-s   ファイルのセーブ(Save)
	C-x C-b   バッファのリストアップ
	C-x C-c   Emacs を終了
	C-x 1     ウィンドウを1つにする(つまり他のウィンドウを全部消す)
	C-x u	  取り消し	

名前による拡張コマンドには、あまり使わないものや、特定のモードでしか使
わないものがあります。たとえば replace-string ですが、これは文字列を置
換するものです。M-x をタイプすると、Emacs は画面の最下行に M-x と表示
し入力を促すので、そこにコマンドの名前(この場合 "replace-string")を
入れなければなりません。"repl s<TAB>" とだけタイプすると Emacs がコマ
ンド名を補完してくれます。(<TAB> はタブキーです。普通は、キーボードの
左端、CapsLock もしくは Shift キーの近くにあります。)コマンド名を入れ
たら <Return> を打って下さい。

"Replace string" コマンドには引数が二つ必要です。どの文字列をどう置換
するかです。各引数を入力するたびに <Return> を打って下さい。

>> カーソルをここから2行下の空行に移動させて下さい。
   M-x repl s<Return>changed<Return>Altered<Return> とタイプしましょう。

   この行がどう変わるか(changed)見ましょう。あなたはカーソル以降全部の 
   c-h-a-n-g-e-d という語を "altered" に変えたのです。


*自動セーブ
============

ファイルに変更を加えてまだセーブしていない場合、それらの変更は計算機が
クラッシュすると失われてしまう可能性があります。そういう事態を避けるた
め、編集中の各ファイルについて自動セーブファイルが定期的に書かれます。
自動セーブファイルは頭とお尻に # が付いています。例えば "hello.c" とい
うファイルの自動セーブファイルは "#hello.c#" です。通常の方法でファイ
ルをセーブしたときに、そういう自動セーブファイルは消されます。

計算機がクラッシュした場合、自動セーブされた編集を回復させることができ
ます。普通にファイル(編集していたもので、自動セーブファイルじゃありま
せん)を開き、それから M-x recover file<Return> とタイプするのです。確
認を求めてきますので、yes<Return> とタイプし自動セーブされたデータを回
復します。


*エコーエリア
==============

もしゆっくりとコマンドを打ったならば、画面の下のエコーエリアと呼ばれ
る場所に打ったものが表示されます。エコーエリアは画面の最下行です。


*モードライン
==============

エコーエリアのすぐ上の行は、モードラインと呼びます。モードラインはこん
な風に見えるでしょう。

-J:**  TUTORIAL.ja       (Fundamental)--L670--58%----------------

この行は Emacs の状態及び編集中の文章について有益な情報を与えてくれま
す。

ファイル名についてはもう分っていますね。それはあなたが開いたファイルで
す。-NN%-- は文章中の現在位置を示しています。文章の NN% が画面最上段よ
り前にあるということです。もし文章の最初の行が画面にある時には --00%-- 
の代りに --Top-- と表示します。もし文章の最後の行が画面にある時には 
--Bot-- と表示します。もし画面に全部収まってしまうような短い文章を見て
いるときには --All-- と表示します。

L とそれに続く数字は現在の行番号を示しています。

先頭近くの星印は、あなたが文章を変更したことを示しています。ファイルを
開いた直後や、セーブした直後は、その部分には星印の代わりにダッシュ `-' 
が表示されます。

括弧に囲まれた部分はどんな編集モードにいるかを示します。デフォルトは 
"Fundamental" というモード、これが現在のモードです。これは「メジャーモー
ド(major mode)」の一例です。

Emacs には多くの種類のメジャーモードがあります。Lisp mode やText mode 
のように、どんなプログラム言語やどんな種類の文章を編集中かを意味するも
のもあります。いつでも必ずいずれかのメジャーモードの状態になっています。
どのメジャーモードにいるのかは、モードラインの現在は "Fundamental" と
表示している部分を見れば分ります。

各メジャーモードは幾つかのコマンドに異なる振る舞いをさせます。例えば、
プログラムリスト中にコメントを入れるためのコマンドがあります。コメント
の形式(シンタックス)は、プログラム言語によって異なり、メジャーモード
は、それに対応する言語に合った形式でコメントを挿入します。各メジャーモー
ドは拡張コマンドの名前になっています。つまりその拡張コマンドを使ってメ
ジャーモードを切り換えるのです。例えば、M-x fundamental-mode というの
は Fundamental モードに切り換えるためのコマンドです。

もし、通常の英語や日本語の文章(このファイルのような)を編集するのなら
ば、Text mode を使いましょう。
>> M-x text-mode <Retuen> とタイプしてみて下さい。

心配しないで。これまで学んだコマンドはたいして変わりませんから。だけど、
M-f や M-b がアポストロフィ "'" を単語の一部だと解釈するようになったの
が分るでしょう。以前の Fundamental モードでは M-f や M-b は "'" を単語
の区切りと見なしていました。

メジャーモードはこのように些細な違いを生みます。大概のコマンドはどのメ
ジャーモードでも同じ働きをしますが、実際の動きは少しだけことなるのです。

現在のメジャーモードについての説明文を見るには C-h m とタイプします。

>> C-u C-v を一二度やってこの行を画面の上の方に持っていきましょう。
>> C-h m とタイプし、Text mode と Fundamental mode の違いをみましょう。
>> C-x 1 で Text mode の説明文を画面から消しましょう。

メジャーモードが「メジャー」というからには「マイナーモード」もあります。
マイナーモードはメジャーモードの代わりになるものではなく、それをちょっ
とだけ修正するものです。各マイナーモードは、メジャーモードや他のマイナー
モードに影響を与えずに、それだけをオンオフできます。つまり、マイナーモー
ドを全く使わなかったり、一個だけ使ったり、いくつかを同時に使ったりでき
るのです。

通常の文章を編集している時にとても便利なマイナーモードの一つにオートフィ
ル(Auto Fill)モードというのがあります。このモードがオンの時に文章を
入力していって行を長くしすぎた場合、自動的に単語と単語の間で行が分割さ
れます(日本語の場合はどの文字の間でも。禁則処理もなされます)。

Auto Fill モードは M-x auto-fill-mode<Return> とやればオンにできます。
それがオンの状態で M-x auto-fill-mode<Return> とやれがオフにできます。
このコマンドは、モードがオフならオンに、オンならオフにするのです。こう
いうのを「モードをトグルする」と言います。

>> M-x auto-fill-mode<Return> とタイプして、 "asdf " で始まる行を入力
   して下さい。行が分割されるまで何度も "asdf " とタイプしましょう。ス
   ペースを忘れずに。Auto Fill はスペースが入力された時のみ働きます。

右マージンは通常 70 文字(カラム)ですが、C-x f コマンドでこれを変更す
ることができます。指定の文字数を数値引数として与えます。

>> 数値引数 20 で C-x f をやりましょう。 (C-u 2 0 C-x f)。
   それから適当な文章(英語)を入力し、20 文字で行が分割されるのを見て
   みましょう。それから C-x f コマンドでまたマージンを 70 文字に戻して
   下さい。

パラグラフの途中を変更しても Auto Fill モードはそれを自動的にフィルし
直しはしません。
パラグラフをフィルし直すにはカーソルをそのパラグラフの中に置いてから
M-q をタイプします。

>> カーソルをこの行直前のパラグラフに移動させ M-q とタイプして下さい。


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS