%\kanjifiletype=20 % -*-texinfo-*-
\overfullrule=0pt
\def\lang{jp}
\input texinfo
@c %**start of header
@settitle Version 19 Antenews
@setfilename ../info/antenews-jp
@c @smallbook
@c %**end of header

@node Top, Basic Changes, , (dir)
@unnumbered Version 19 Antenews(Version 19予告)

本章では不十分ではあるがリリースを見込んで、Emacs 19の新しい機能を述べる。
これを含めるのは、Emacs 19が出ると同時にバージョン18のマニュアルが
時代遅れにならないようにするためである。
@c  keyword:	obsolete    時代遅れ
本リストでは@cite{The GNU Emacs Manual}に含まれる機能だけを述べる。
Emacs Lispに関連する変更は、次版の@cite{The GNU Emacs Lisp Manual}で
解説する。@refill

@menu
* Basic Changes::	  全ユーザが知るべき変更点。
* New Facilities::	  全ユーザに知って欲しい変更点。
* Binding Changes::	  普通のコマンドで、移動したもの。重要!
* Changed Commands::	  普通のコマンドで、新しい特徴を持つもの。重要!
* M-x Changes::		  @kbd{M-x}で実行するコマンドの変更点。重要!
* New Commands::	  追加されたコマンドで、
    	    	    	    沢山のユーザに使って貰いたいもの。
* Search Changes::	  段階的検索での変更点。幾つかは重要。

以降の変更点は、特に興味が無ければ無視しても全く構わない。

* Filling Changes::	  Changes in fill commands.
* TeX Mode Changes::	  Changes in the commands for editing TeX files
			    and running TeX.
* Shell Changes::	  Major changes in all the modes that run subprograms.
* Spell Changes::	  These commands now use ispell instead of spell.
* Tags Changes::	  Changes in Tags facility.
* Mail Changes::	  Changes in both Sendmail mode and Rmail mode.
* Info Changes::	  New commands in Info.
* Dired Changes::	  Powerful new features in Dired.
* GNUS::		  An alternative news reader.
* Calendar/Diary::	  The calendar feature now lets you move to different
			    dates and convert to and from other calendars.
			  You can also display related entries from your diary
			    file.
* Version Control::	  A convenient interface to RCS or SCCS.
* Emerge::		  A new feature for merging files interactively.
* Debuggers::		  Running debuggers (GDB, DBX, SDB) under Emacs.
* Other New Modes::	  Miscellaneous new and changed major modes.
* Key Sequence Changes::  You can now bind key sequences that include function
			    keys and mouse clicks.
* Hook Changes::	  Hook variables have been renamed more systematically.
@end menu

@node Basic Changes, New Facilities, Top, Top
@section Basic Changes(基本部変更点)

変更を行ったのは、Emacsが使う資源を減らし、
回復不能なハングをしないようにするためである。
@c  keyword:	resource    資源
これらの変更がEmacsのコマンドを変えることはないが、重要なので説明する。@refill

ファイル読み書きのために待ち状態にあるEmacsを@kbd{C-g}で中断できる。
@c  keyword:	quit	中断
OSがハングしているシステム・コールに対する割り込みを許すからである
(残念ながら、NFSはこの割り込みを許すように実装されていない)。@refill

バッファをkillすると、今度のEmacsはメモリをOSに返すので、 Emacsプロセス
のサイズは減少する。バッファをkillしてできたスペースは、その大きさに関わ
らず、他のバッファが再利用できる。Emacsが不要なら、他のプロセスが再利用
する。@refill

@subheading Multiple X Windows(Xのマルチウィンドウ)

Xウィンドウ使用時は、Xレベルのウィンドウを複数作ることができる。
各Xウィンドウは、1つ以上のEmacsウィンドウを中に持つ@dfn{frame}を表示する。
@c  keyword:	frame	フレーム
各フレームはそれぞれ通常ミニバッファであるエコー領域を持つ。
(混乱を避けるために、``ウィンドウ''という言葉はEmacsが実装する
分割領域に対して使用し、フレームについて使わないことにする。)
フレームを最も簡単に追加するには、@kbd{C-x 5}プリフィクス文字を使う
(@pxref{New Commands, , New Everyday Commands})。@refill

@c ??? Change not yet made
@findex scroll-bar-mode @r{(V19)}
Emacsウィンドウにスクロール・バーがつけられるようになった。
@code{scroll-bar-mode}コマンドで、スクロール・バーをon/offできる。
引数無しならば、スクロール・バー使用する/しないをトグルする。
引数があれば、正の時に限りスクロール・バーをonにする。
このコマンドはこれから作るフレームを含む、全てのフレームに適用される。
(スクロール・バーをフレーム毎に制御したいならば、Lispプログラムを書くこ
と。)@refill

@subheading Undo Improvements(アンドゥの向上)

@c ??? Change not yet made
deleteのアンドゥは、delete直前の位置にカーソルを戻すようになった。

@subheading Auto Save Improvements(オート・セーブの向上)

@vindex auto-save-timeout @r{(V19)}
Emacsはガーベジ・コレクションとオート・セーブを入力待ちの間に行うことで、
タイプ中に発生するのを避けるようにした。
タイプを止めた後変数@code{auto-save-timeout}が示す秒数を待って、
Emacsはオート・セーブと恐らくはガーベジ・コレクションとを行なう。
(実際の時間はバッファのサイズによってもバラついてくる。
バッファが大きければ長くなる、というのもバッファが大きい程
オート・セーブ自体が長くかかるから)
こうして、Emacsはタイプを妨げたり遅らせたりしないようにする。@refill

Emacs 18では、異常に縮んだバッファを検出するとそのバッファを
オート・セーブせずにウォーニングを表示する。
バージョン19では、そのバッファのAuto Saveモードもoffにして、
繰り返し同じメッセージを表示しないようにする。
もしAuto Saveモードを再度有効に切り替えれば、
Emacsはバッファが縮んだことに構わず再びセーブをするようになる。@refill

@findex revert-buffer @r{(V19)}
Emacs 19の@code{revert-buffer}は、
最新のオート・セーブ・ファイルから復旧するかとは訊いてこない。
より多くのアンドゥ情報を保持するように変更したので、
あまり便利では無くなったからだ。@refill

@code{recover-file}はAuto Saveモードをoffにしなくなった。

@subheading File Local Variables

@vindex enable-local-variables @r{(V19)}
@vindex inhibit-local-variables @r{(V19)}
ファイルがローカル変数をセットできるか否かを制御するユーザ・オプションは、
@code{enable-local-variables}とEmacs 19では呼び、
@code{inhibit-local-variables}ではない。
値@code{t}はローカル変数リストが許されていることを意味し、
@code{nil}ならば、無視である。それ以外の値なら、ユーザに確認を取る。@refill

@node New Facilities, Binding Changes, Basic Changes, Top
@section New Basic Facilities(新基本機能)

@cindex minibuffer history
@cindex history, in minibuffer
@kindex M-p @r{(V19)}
@kindex M-n @r{(V19)}
@findex next-history-element @r{(V19)}
@findex previous-history-element @r{(V19)}
過去のミニバッファ入力を簡単に取り出せるようになった。
ミニバッファにおいて、@kbd{M-p}(@code{previous-history-element})で
1つ前のミニバッファ入力を、@kbd{M-n}(@code{next-history-element})で
1つ後の入力を取り出すことができる。@refill

@findex previous-matching-history-element @r{(V19)}
@findex next-matching-history-element @r{(V19)}
@kindex M-r @r{(V19)}
@kindex M-s @r{(V19)}
履歴の中を前方或いは後方に検索するコマンドもある。
いうなれば、ミニバッファに正規表現を指定すると、
それに一致する履歴要素を検索するものである。
@kbd{M-r} (@code{previous-matching-history-element}) がより古い履歴要素を探し、
@kbd{M-s} (@code{next-matching-history-element})がより新しいものを探す。
特別な仕組みにより、これらコマンドは常にミニバッファから引数を読みとる。
それを使おうとした時たとえ既にミニバッファにいても構わない。@refill

Emacs 19のリリース迄には、これらコマンドの正確な動作を変更するかも知れない。
もしかしたら、それまでに入力した文字列で、
それに一致するものを探すかも知れない。
或いは文字通りの比較を正規表現の代わりに使うかも知れない。
或いは履歴要素の先頭に一致するものだけをとるようにするかもしれない。
或いは@kbd{C-s}のように入力した文字列で段階的に一致するものを探すかも知れない。
我々が選びたいインタフェースは、便利で柔軟で自然なもので、
これら目標は幾分対立するからである。
実際にどのインタフェースが有効であるのかを知りたければ、
@kbd{C-h f previous-matching-history-element}とタイプすること。@refill

この履歴機能はミニバッファを使う全てに関して有効だが、
異なる入力の種類に応じて別々の履歴リストがある。
例えば、ファイル名のリストがあり、
ファイル名を読む全てのコマンドはそれを使う。
@code{query-replace}のようなコマンドの引数のリストもある。
非常に特化した履歴リストもある。
例えば@code{compile}はそれをコンパイル関係のコマンドに使う。@refill

@subheading Remote File Access

@cindex ftp
@cindex remote file access
特別なファイル名構文によって、他のマシンにあるファイルを参照できる。

@example
@group
/@var{host}:@var{filename}
/@var{user}@@@var{host}:@var{filename}
@end group
@end example

これを使うと、EmacsはFTPプログラムを使って指定ホストのファイルを
読み書きする。これは、ユーザ名即ち名前@var{user}を使ってFTPログ・インする。
ときどきパスワードを訊いてくる。これを使って@var{host}にログ・インする。@refill


@subheading Using Flow Control

@cindex flow control in V19
@cindex xon-xoff in V19

フロー・コントロール抜きでは働かない端末或いは接続で、
それを簡単に有効にすることができるようになった。
例えば、VT-100とH19端末でこれをやりたいならば、
次のコードを@file{.emacs}に入れればいい。@refill

@findex enable-flow-control-on @r{(V19)}
@example
(enable-flow-control-on "vt100" "h19")
@end example

フロー・コントロールが有効の時には、@kbd{C-\}を@kbd{C-s}の代わりにタイプし、
@kbd{C-^}を@kbd{C-q}の代わりにタイプする。@refill

@subheading Controlling Backup File Names(バックアップ・ファイル名の制御)

@vindex version-control @r{(V19)}
@vindex VERSION_CONTROL
Lisp変数@code{version-control}のデフォルト設定は、
環境変数@code{VERSION_CONTROL}から取るようになった。
よって、バックアップ・ファイル名の付け方をEmacsと他のGNUユーティリティとで
揃えることができる。@refill

@node Binding Changes,Changed Commands ,New Facilities, Top
@section Changed Key Bindings(キー・バインドの変更)

@table @kbd
@item M-@{
@kindex M-@{ @r{(V19)}
@code{backward-paragraph}に対する新しいキー・シーケンス。
古いキー・シーケンス@kbd{M-[}は、未定義がデフォルトになる。@refill

変更の理由は、殆どの端末でファンクション・キーが送出するシーケンスとの
衝突を避けるためである。@refill

@item M-@}
@kindex M-@} @r{(V19)}
@code{forward-paragraph}に対する新しいキー・シーケンス。
古いキー・シーケンス@kbd{M-]}は、未定義がデフォルトになる。@refill

@kbd{M-@{}に見合うように変更した。

@item C-x C-u
@itemx C-x C-l
@kindex C-x C-u @r{(V19)}
@kindex C-x C-l @r{(V19)}
2つのコマンド、@kbd{C-x C-u} (@code{upcase-region}) と @kbd{C-x
C-l} (@code{downcase-region})とは、デフォルトで禁止することにした。
これらのキーは、なんらかの際に打たれてしまうことが多く、
すぐに気づかない場合、被害は大きいからである。@refill

@item C-x 3
@kindex C-x 3 @r{(V19)}
@kbd{C-x 3}は@code{split-window-horizontally}にバインドされ、
これは1つのウィンドウを並び立つ2つに分割する。
かつては@kbd{C-x 5}だった。

@item @kbd{C-x 4 C-o}
@kindex C-x 4 C-o @r{(V19)}
@findex display-buffer @r{(V19)}
このキーでは@code{display-buffer}を実行し、
これは指定のバッファを選択せずに別のウィンドウに表示する。

@item M-g
@kindex M-g @r{(V19)}
@kbd{M-g}は未定義にした。かつてはコマンド@code{fill-region}を実行した。
このコマンドは、意図せず間違って実行されることが多かったので。

@item C-x a
@itemx C-x n
@itemx C-x r
@kindex C-x a @r{(V19)}
@kindex C-x n @r{(V19)}
@kindex C-x r @r{(V19)}
3つの新しいプリフィクス・キーが@w{@kbd{C-x}}コマンド群を
もっとシステマチックにするために作られた。
@w{@kbd{C-x a}}と@w{@kbd{C-x n}}と@w{@kbd{C-x r}}とである。
@w{@kbd{C-x a}}は略語コマンド群に使う。
@w{@kbd{C-x n}}はナローイング関連コマンド群に使う。
そして、@w{@kbd{C-x r}}はレジスタと矩形コマンド群に使う。
以下が新しいバインドの詳細。

@table @kbd
@item C-x a l
@code{add-mode-abbrev} (以前の @kbd{C-x C-a}).
@item C-x a g
@code{add-global-abbrev} (以前の @kbd{C-x +}).
@item C-x a i g
@code{inverse-add-mode-abbrev} (以前の @kbd{C-x C-h}).
@item C-x a i l
@code{inverse-add-global-abbrev} (以前の @kbd{C-x -}).
@item C-x a e
@code{expand-abbrev} (以前の @kbd{C-x '}).
@sp 1
@item C-x n n
@code{narrow-to-region} (以前の @kbd{C-x n}).
@item C-x n p
@code{narrow-to-page} (以前の @kbd{C-x p}).
@item C-x n w
@code{widen} (以前の @kbd{C-x w}).
@sp 1
@item C-x r C-@key{SPC}
@code{point-to-register} (以前の @kbd{C-x /}).
@item C-x r @key{SPC}
Also @code{point-to-register} (以前の @kbd{C-x /}).
@item C-x r j
@code{jump-to-register} (以前の @kbd{C-x j}).
@item C-x r s
@code{copy-to-register} (以前の @kbd{C-x x}).
@item C-x r i
@code{insert-register} (以前の @kbd{C-x g}).
@item C-x r r
@code{copy-rectangle-to-register} (以前の @kbd{C-x r}).
@item C-x r k
@code{kill-rectangle} (以前はキー・バインドしていない).
@item C-x r y
@code{yank-rectangle} (以前はキー・バインドしていない).
@item C-x r o
@code{open-rectangle} (以前はキー・バインドしていない).
@item C-x r f
@code{frame-configuration-to-register} (新しいコマンド)
全フレーム内の全ウィンドウ状態を保存する。
@kbd{C-x r j}を使って、この状態を戻す。
@c !!! following generates acceptable underfull hbox
@item C-x r w
@code{window-configuration-to-register} (新しいコマンド)
選択したフレームの全ウィンドウ状態を保存する。
@kbd{C-x r j}を使って、この状態を戻す。
@end table

旧バインド@kbd{C-x /}, @kbd{C-x j}, @kbd{C-x x}, @kbd{C-x g}は、
まだ削除していない。それ以外のここに挙げた旧バインドは削除した。
@code{append-to-buffer}である@kbd{C-x a}は、プリフィクス・キーとするために、
削除した。@code{append-to-buffer}は、現在キー・バインドしていない。@refill

@item C-x v
@kbd{C-x v}は、新たにプリフィクス文字となった。
バージョン・コントロール・コマンド群に使われる。@refill
@xref{Version Control}.
@end table

@node Changed Commands, M-x Changes ,Binding Changes, Top
@section Changed Everyday Commands(変更のあった常用コマンド)

@table @kbd
@item C-o
@kindex C-o @r{(V19)}
フィル・プリフィクスがある場合、
コマンド@kbd{C-o}は新たに作る行頭にプリフィクスを挿入する。@refill

@item M-^
@kindex M-^ @r{(V19)}
フィル・プリフィクスがある場合、
コマンド@kbd{M-^}はdeleteした改行に続くプリフィクスを(もしあれば)delete
する。@refill

@item M-z
@kindex M-z @r{(V19)}
@kbd{M-z} コマンド (@code{zap-to-char})は、
目的の文字を含めてkillするようになった。
18版では、目的迄killしたが、目的の文字は含めなかった。@refill

@item M-!
@kindex M-! @r{(V19)}
コマンド@kbd{M-!} (@code{shell-command})は、
ちょうどシェルがそうするように、
指定されたシェル・コマンドが@samp{&}で終わるならば、
非同期に実行するようになった。@refill

@item C-x 2
@kindex C-x 2 @r{(V19)}
@vindex split-window-keep-point @r{(V19)}
@kbd{C-x 2} コマンド (@code{split-window-vertically})は、
スクロールを避けるために、ポイントを既にカーソルが画面行に載っている方の
ウィンドウに持っていこうとする。
これが気に入らないのなら、@code{split-window-keep-point}を@code{nil}に
セットすればoffにできる。@refill

@item C-x s
@kindex C-x s @r{(V19)}
@kbd{C-x s}コマンド(@code{save-some-buffers})が
特定のバッファをセーブするか否かを訊いてくるときの選択肢が更に増えた。
選択肢は、@code{query-replace}のそれに類似性がある。
以下の通り。@refill

@table @kbd
@item y
このバッファをセーブし、残りのバッファについては訊いてくる
@item n
このバッファをセーブしないで、残りのバッファについては訊いてくる
@item !
このバッファ以降全てをセーブし、もう何も訊いてこない。
@c !!! following generates acceptable underfull hbox
@item @key{ESC}
@code{save-some-buffers}を終了し、もう何も言わない。
@item .
@c !!! following written verbosely to avoid overfull hbox
このバッファだけをセーブし、@code{save-some-buffers}を抜けてしまい、
他のバッファについては訊いてこない。@refill
@item C-r
現在訊かれているバッファをViewする。Viewモードを抜けた後、
@code{save-some-buffers}に戻ってくる。再び質問をしてくる。@refill
@item C-h
これら選択肢についてのヘルプ・メッセージを表示する。
@end table

@item C-x C-v
@kindex C-x C-v @r{(V19)}
このコマンド(@kbd{find-alternate-file})は、
完全な現ファイル名をミニバッファに挿入するようになった。
些細なタイプ・ミスをした場合に、これが便利。
ポイントは、最後のスラッシュの後ろ、最後のファイル名要素の直前にあるので、
それを完全に置き換えたいのなら、@kbd{C-k}を使って直ちに削除できる。@refill

@item C-M-f
@kindex C-M-f @r{(V19)}
式とリストのコマンド、@kbd{C-M-f}のようなものは、
Lispモードにおいてコメント内の括弧を無視するようになった。
@end table

@node M-x Changes, New Commands, Changed Commands, Top
@section Changes in Common @kbd{M-x} Commands(@kbd{M-x}コマンド群に共通する変更)

@table @asis
@item @kbd{M-x make-symbolic-link}
@findex make-symbolic-link @r{(V19)}
このコマンドは2番目の引数を展開しないようになった。
それで、相対ファイル名で目的リンクを作ることができるようになった。@refill

@item @kbd{M-x add-change-log-entry}
@itemx @kbd{C-x 4 a}
@findex add-change-log-entry @r{(V19)}
@kindex C-x 4 a @r{(V19)}
これらコマンドは変更したファイル名や時には関数名も
自動的に挿入するようになった。
エントリのグループ化も行う。@refill

@file{Changes}ファイルをエディットするための特別な主モードができた。
フィル(字詰め)が便利に働く。グループ化されたエントリの各塊が1段落で、
同一日に同一人によるエントリの集まりが1ページである。@refill

@item @kbd{M-x compare-windows}
@findex compare-windows @r{(V19)}
前置引数付きなら、@code{compare-windows}は空白の変化を無視する。
変数@code{compare-ignore-case}が非-@code{nil}ならば、
大文字/小文字の変化も同様に無視する。@refill

@item @kbd{M-x view-buffer}
@itemx @kbd{M-x view-file}
@findex view-buffer @r{(V19)}
@findex view-file @r{(V19)}
Viewコマンド群(例えば(@kbd{M-x view-buffer} や @kbd{M-x view-file})は、
最早リカーシブ・エディットを使わない。
代わりに、一時的に別の主モード(Viewモード)に切り替える。
これはエディットせずにバッファ中を移動するのに都合がいいように設計してあ
る。@refill

@item @kbd{M-x manual-entry}
@findex manual-entry @r{(V19)}
@kbd{M-x manual-entry}はViewモードを使ってmanページを表示するようになった。

@item @kbd{M-x compile}
@findex compile @r{(V19)}
以前に入力したどの@code{compile}でも繰り返したいならば、
コンパイル・コマンドをミニバッファで入力している最中に
ミニバッファ履歴コマンドを使って簡単に行える。@refill

コンパイル実行中には、文字列@samp{Compiling}がモード行に現れる。
この文字列が消えた時、コンパイルは終了している。@refill

コンパイラ・メッセージが出るバッファはCompilationモードにある。
このモードでは@key{SPC}と@key{DEL}で全画面スクロールし、
@kbd{M-n} 及び @kbd{M-p}で前後のエラー・メッセージに移動する。
@kbd{M-@{} と @kbd{M-@}}も使えて、
異なるソース・ファイルのエラー・メッセージに上がったり下がったりできる。
@kbd{C-c C-c}を任意のエラー・メッセージ上で使えば、
対応するソース・コードを見つけることができる。@refill

Emacs 19はコンパイラ・メッセージの更に一般的化したパーサを持つ。
例えば、lintのメッセージや、
ある種のCコンパイラが出す特殊なエラー・メッセージ・フォーマットも理解で
きる。@refill
@end table


@node New Commands, Search Changes, M-x Changes, Top
@section New Everyday Commands(新しい常用コマンド)

@table @asis
@item @kbd{C-z}
@kindex C-z @r{(V19)}
@findex iconify-frame @r{(V19)}
Xウィンドウを使っている場合、@kbd{C-z} (@code{iconify-frame})によって
現フレームをアイコン化できるようになった。@refill

@item @kbd{C-M-l}
@kindex C-M-l @r{(V19)}
@findex reposition-window @r{(V19)}
@kbd{C-M-l} コマンド (@code{reposition-window})は
現ウィンドウを、有意義な情報が画面に出るように設計された
ヒューリスティックな手法でスクロールする。
例えば、Lispファイルにおいて、このコマンドは可能ならば現defunの全体が
画面に現れるようにする。@refill

@item @kbd{C-M-r}
@kindex C-M-r @r{(V19)}
@findex isearch-backward-regexp @r{(V19)}
@c !!! following written verbosely to avoid overfull hbox
@kbd{C-M-r}キーによって、
逆方向段階的正規表現検索を行う
コマンド@code{isearch-backward-regexp}が
動くようになった。@refill

@item @kbd{C-x 5}
@kindex C-x 5 @r{(V19)}
プリフィクス・キー@kbd{C-x 5}は@kbd{C-x 4}とサブコマンド群が対応する
類似性を持たせた。違うのは、@kbd{C-x 5}コマンド群は新しいウィンドウだけでなく、
新しいフレームも作ることである。@refill

@item @kbd{C-x 5 C-f}
@itemx @kbd{C-x 5 b}
@kindex C-x 5 C-f @r{(V19)}
@kindex C-x 5 b @r{(V19)}
@findex find-file-other-frame @r{(V19)}
@findex switch-to-buffer-other-frame @r{(V19)}
これらの新しいコマンド群は新しいフレーム内の、
指定ファイル或いはバッファに切り替える(Xウィンドウ使用時)。
コマンド名は、
@code{find-file-other-frame} と @code{switch-to-buffer-other-frame}であ
る。@refill

@item @kbd{C-x 5 m}
@kindex C-x 5 m @r{(V19)}
@findex mail-other-frame @r{(V19)}
送信用メールを別フレームに出す(@code{mail-other-frame})。

@item @kbd{C-x 5 .}
@kindex C-x 5 . @r{(V19)}
@findex find-tag-other-frame @r{(V19)}
別フレームで、タグを見つける(@code{find-tag-other-frame})。

@item @kbd{C-x 4 r}
@kindex C-x 4 r @r{(V19)}
@findex find-file-read-only-other-window @r{(V19)}
これは@code{find-file-read-only-other-window}になった。

@item arrow keys
@cindex arrow keys
矢印キーはそれぞれの方向に移動するバインドをデフォルトで持つようになった。

@item @kbd{C-h C-f}
@itemx @kbd{C-h C-k}
@kindex C-h C-f @r{(V19)}
@kindex C-h C-k @r{(V19)}
これらの新しいヘルプコマンド群はInfoに入り、
それぞれ与えられたEmacsの関数名やキー列に対応するノードを表示する。@refill

@item @kbd{M-a}
@itemx @kbd{M-e}
@kindex M-a @r{(C mode in V19)}
@kindex M-e @r{(C mode in V19)}
@findex c-beginning-of-statement @r{(V19)}
@findex c-end-of-statement @r{(V19)}
Cモードでは、@kbd{M-a} と @kbd{M-e}で完全なCの文単位で移動できるようになった
(@code{c-beginning-of-statement} and @code{c-end-of-statement})。

@item @kbd{M-q}
@kindex M-q @r{(C mode in V19)}
@findex c-fill-paragraph @r{(V19)}
Cモードにおける@kbd{M-q}が、
Cのコメントをフィルする@code{c-fill-paragraph}を実行するようになった。
(実際のCのコードをフィルしたいなんて思わないと仮定している。)@refill

@item @kbd{M-x c-up-conditional}
@findex c-up-conditional @r{(V19)}
Cモードでは、@code{c-up-conditional}がプリプロセッサ条件式の始めの位置に戻り、
以前のポイントをマークする。@refill

前置引数は繰り返し回数として働く。負の引数で、
このコマンドは前方のプリプロセッサ条件式の終わりの位置まで進む。
後方に戻る場合、@samp{#elif} は @samp{#if}に続く@samp{#else}の如く働く。
前方に進む場合、@samp{#elif}は無視する。@refill

@item @kbd{M-x comment-region}
@findex comment-region @r{(V19)}
@code{comment-region}コマンドはコメント区切りをリージョン開始行に追加して、
リージョン全体をコメント化する。負の引数で、リージョンからコメント区切りを
取り去る。引数無し@code{comment-region}の逆効果である。@refill

正の引数付きの@code{comment-region}では、コメント区切りを追加するが、
更にコメント開始文字列の最後の文字が引数で指定した回数だけ並ぶようにする。
このようにして、コメントが目立つようにする。
Lispでは、少なくとも引数の値は2にすること。
なぜならセミコロン1つのコメントは、インデントの決まり上、
行頭に来なくなるので。@refill

@item @kbd{M-x super-apropos}
@findex super-apropos @r{(V19)}
このコマンドは@code{apropos}と似ているが、
それが単なる文字列を検索する代わりに正規表現を検索する点が異なる。@refill

@findex apropros @r{(V19)}
@kindex C-h a @r{(V19)}
前置引数(値はなんでもいい)付きで@code{apropos} や @code{super-apropos}を
使った場合、シンボル名同様にドキュメント文字列も検索する。
前置引数は、全コマンドのキーバインドについても検索表示を制御する。@refill

@item @kbd{M-x diff}
@findex diff @r{(V19)}
@vindex diff-switches @r{(V19)}
この新しいコマンドは、2つのファイルを比較し、相違をEmacsバッファに表示する。
@code{diff}プログラムに対するオプションは、
@code{diff-switches}にセットした文字列が使われる。@refill

相違を表示するバッファはCompilationモードを主モードとしているので、
@kbd{C-x `}で連続して2つの入力ファイルの変更箇所へ飛ぶことができる。
あるいは、特定の変更箇所断片に移動して、
@kbd{C-c C-c}とタイプすることで対応する入力ファイルの位置に移動できる。
Compilationモードの他の特殊コマンドも使用できる。
@key{SPC} と @key{DEL}で、スクロールし、
@kbd{M-p} と @kbd{M-n}で、カーソル移動となる。@refill

@item @kbd{M-x diff-backup}
@findex diff-backup @r{(V19)}
コマンド@code{diff-backup}は、指定ファイルをその最新のバックアップと比較する。
もしバックアップ・ファイル名を指定すれば、
@code{diff-backup}は入力されたバックアップの元となるファイルと
バックアップとを比較する。@refill
@end table

@node Search Changes, Key Index, New Commands, Top
@section Changes in Incremental Search(段階的検索の変更箇所)

段階的検索の変更点で最も重要なのは、@key{RET}が検索を終了してしまい、
@key{ESC}はしないことである。
その他の変更は便利になったが、あえて知る程ではない。@refill

@cindex Incremental search in V19
@findex isearch @r{(V19)}
@itemize @bullet
@item
段階的検索を終了させる文字は、@key{RET}になった。
これは、他の殆どの引数の読みとられ方に合わせるためである。@refill

改行を段階的検索するには、@key{LFD}(@kbd{C-j}のことでもある)をタイプする。

(この変更は、ある種の実験である。Emacs 19が本当にリリースされる迄には、
元に戻っているかも知れない)

@item
段階的検索は以前に入力した検索文字列のリングを維持するようになった。
@kbd{M-p} と @kbd{M-n}とを使えば、リングの中を移動して、
検索文字列を再利用のために取り出すことができる。
これらコマンドは選んだリングの要素をミニバッファに残すので、
そこでエディットすることもできる。@key{RET}をタイプすると、
エディットが終了し、選んだ文字列の検索が始まる。@refill

@item
大文字が検索文字列に含まれていた場合、検索は大文字/小文字を区別する。

@item
段階的検索は、主モードとして実現された。
@kbd{C-s}をタイプすると、一時的に異なるキーマップに切り替える。
それぞれのキーはそこで、段階的検索にふさわしいものが定義されている。
このお陰で、検索の振る舞いをユーザへの見かけの影響無しに、
簡単にカスタマイズできるようになった。@refill
@end itemize

@node Key Index, Command Index, Search Changes, Top
@unnumbered Key (Character) Index
@printindex ky

@node Command Index, Variable Index, Key Index, Top
@unnumbered Command and Function Index
@printindex fn

@node Variable Index, Concept Index, Command Index, Top
@unnumbered Variable Index
@printindex vr

@node Concept Index, , Variable Index, Top
@unnumbered Concept Index
@printindex cp

@c @summarycontents
@contents
@bye
