Next: , Previous: , Up: Text   [Contents][Index]


33.7 ユーザーレベルの削除コマンド

このセクションでは、主にユーザーにたいして有用ですがLispプログラムでも有用なテキストを削除するための高レベルのコマンドを説明します。

Command: delete-horizontal-space &optional backward-only

この関数はポイント近辺のすべてのスペースとタブを削除する。リターン値はnil

backward-onlyが非nilなら、この関数はポイント前のスペースとタブを削除するがポイント後のスペースとタブは削除しない。

以下の例では、各行ごとに2番目と3番目の間にポイントを置いて、delete-horizontal-spaceを4回呼び出している。

---------- Buffer: foo ----------
I ∗thought
I ∗     thought
We∗ thought
Yo∗u thought
---------- Buffer: foo ----------

(delete-horizontal-space)   ; Four times.
     ⇒ nil

---------- Buffer: foo ----------
Ithought
Ithought
Wethought
You thought
---------- Buffer: foo ----------
Command: delete-indentation &optional join-following-p beg end

この関数はポイントのある行をその前の行に結合(join)する。結合においてはすべての空白文字を削除、特定のケースにおいてはそれらを1つのスペースに置き換える。join-following-pが非nilなら、delete-indentationはかわりに後続行と結合を行う。それ以外の場合にはbegendが非nilなら、この関数はbegendで定義されるリージョン内のすべての行を結合する。

インタラクティブな呼び出しではjoin-following-pはプレフィクス引数、begendはリージョンがアクティブならリージョンの開始と終了、それ以外はnil。この関数はnilをリターンする。

fillプレフィクスがあり、結合される2つ目の行もそのプレフィクスで始まる場合には、行の結合前にdelete-indentationはそのfillプレフィクスを削除する。Marginsを参照のこと。

以下の例では‘events’で始まる行にポイントがあり、前の行の末尾に1つ以上のスペースが存在しても違いは生じない。

---------- Buffer: foo ----------
When in the course of human
∗    events, it becomes necessary
---------- Buffer: foo ----------

(delete-indentation)
     ⇒ nil

---------- Buffer: foo ----------
When in the course of human∗ events, it becomes necessary
---------- Buffer: foo ----------

行の結合後に結合点に単一のスペースを残すか否かを決定するのは、関数fixup-whitespaceの責任である。

Command: fixup-whitespace

この関数はポイントを取り囲むすべての水平スペースを、コンテキストに応じて1つのスペースまたはスペースなしに置き換える。リターン値はnil

行の先頭や末尾において、スペースの適正な数は0。閉カッコ構文(close parenthesis syntax)の前の文字、開カッコの後の文字、式プレフィクス構文(expression-prefix syntax)においても、スペースの適正な数は0。それ以外ではスペースの適正な数は1。Syntax Class Tableを参照のこと。

以下の例では最初に1行目の単語‘spaces’の前にポイントがある状態で、fixup-whitespaceを呼び出している。2回目の呼び出しでは‘(’の直後にポイントがある。

---------- Buffer: foo ----------
This has too many     ∗spaces
This has too many spaces at the start of (∗   this list)
---------- Buffer: foo ----------

(fixup-whitespace)
     ⇒ nil
(fixup-whitespace)
     ⇒ nil

---------- Buffer: foo ----------
This has too many spaces
This has too many spaces at the start of (this list)
---------- Buffer: foo ----------
Command: just-one-space &optional n

このコマンドはポイントを取り囲むすべてのスペースを1つのスペース、nが指定された場合はn個のスペースで置き換える。リターン値はnil

Command: delete-blank-lines

この関数はポイントを取り囲む空行を削除する。ポイントが前後に1行以上の空行がある空の行にある場合には、1行を除いてそれらすべてを削除する。ポイントが孤立した空行にあればその行を削除する。ポイントが空でない行にあれば、その直後にあるすべての空白を削除する。

空行とはタブまたはスペースのみを含む行として定義される。

delete-blank-linesnilをリターンする。

Command: delete-trailing-whitespace &optional start end

startendで定義されるリージョン内から末尾の空白文字を削除する。

このコマンドはリージョン内の各行の最後の非空白文字後にある空白文字を削除する。

このコマンドがバッファー全体(マークが非アクティブな状態で呼び出された場合やLispからendnilで呼び出された場合)にたいして動作する場合には、変数delete-trailing-linesが非nilならバッファーの終端行の末尾の行も削除する。