Next: , Previous: Words, Up: Text


19.2 文

Emacsの文/段落操作コマンドは、単語操作コマンドと同じく、 ほとんどメタキーです。

M-a
文の先頭にポイントを後向きに移動する(backward-sentence)。
M-e
文の末尾にポイントを前向きに移動する(forward-sentence)。
M-k
ポイント位置から文末までを前向きにキルする (kill-sentence)。
C-x <DEL>
ポイント位置から文頭までを後向きにキルする (backward-kill-sentence)。

コマンドM-aM-ebackward-sentenceforward-sentence)は、 それぞれ、ポイントを含む文の先頭あるいは末尾にポイントを移動します。 これらは、行頭や行末にポイントを移動するコマンドC-aC-eに 類似するように選ばれました。 ただし、M-aM-eを反復して使ったり数引数を指定すると、 ポイントは連続した文を横断して移動する点が違います。

(文頭に向かって)後向きに移動するときは、 文の先頭の文字の直前にポイントを置きます。 (文末に向かって)前向きに移動するときは、 文を終える句読点の直後に置きます。 どちらのコマンドも、文と文の境界にある白文字に ポイントを移動することはありません。

C-aC-eには調和したキルコマンドC-kがあるように、 M-aM-eにもコマンドM-kkill-sentence)があります。 これはポイントから文末までをキルします。 引数に−1を指定すると、文頭までを後向きにキルします。 これより大きな引数は反復回数になります。 また、ポイント位置から文頭までを後向きにキルするコマンドとして C-x <DEL>backward-kill-sentence)もあります。 このコマンドは、文の作成途中で考えが変わったときに便利です。

文操作コマンドでは、文末に空白を2個打つという米国のタイピストの習慣を 踏襲しているものと仮定します。 つまり、‘.’、‘?’、‘!’の直後が行末であるか空白が2個続けば、 その箇所を文末とみなします。 ただし、‘.’、‘?’、‘!’の直後には、 ‘)’、‘]’、‘'’、‘"’がいくつあってもかまいません。 また、段落の先頭と末尾も、それぞれ、文の先頭と末尾になります。

変数sentence-endで、文末の識別方法を制御します。 この値は、文末の数個の文字とそれらに続く白文字に一致する正規表現です。 通常の値はつぎのとおりです。 1

     "[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*"

この例は、正規表現の節で説明しました。 See Regexps

文のあいだには空白を1個だけとしたければ、 sentence-endにはつぎの値を設定します。

     "[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*"

同時に、変数sentence-end-double-spaceにはnilを設定して、 詰め込みコマンドにも、文末には空白が1個だけあり、また、 文末には空白を1個だけ追加することを指示します。 ただし、このように設定すると、 文末のピリオドと省略のピリオドとを区別できなくなることに注意してください。


Footnotes

[1] 【訳注】 言語環境をJapaneseにすると、変数sentence-end

     "[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*\\|[。?!]"

となっている。 追加部分は、日本語の文末に対応する文字集合。