このセクションでは、主にユーザーにたいして有用ですがLispプログラムでも有用なテキストを削除するための高レベルのコマンドを説明します。
この関数はポイント近辺のすべてのスペースとタブを削除する。リターン値は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 ----------
この関数はポイントのある行をその前の行に結合(join)する。結合においてはすべての空白文字を削除、特定のケースにおいてはそれらを1つのスペースに置き換える。join-following-pが非nil
なら、delete-indentation
はかわりに後続行と結合を行う。それ以外の場合にはbegとendが非nil
なら、この関数はbegとendで定義されるリージョン内のすべての行を結合する。
インタラクティブな呼び出しではjoin-following-pはプレフィクス引数、begとendはリージョンがアクティブならリージョンの開始と終了、それ以外はnil
。この関数はnil
をリターンする。
fillプレフィクスがあり、結合される2つ目の行もそのプレフィクスで始まる場合には、行の結合前にdelete-indentation
はそのfillプレフィクスを削除する。fillのマージンを参照のこと。
以下の例では‘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
の責任である。
この関数はポイントを取り囲むすべての水平スペースを、コンテキストに応じて1つのスペースまたはスペースなしに置き換える。リターン値はnil
。
行の先頭や末尾において、スペースの適正な数は0。閉カッコ構文(close parenthesis syntax)の前の文字、開カッコの後の文字、式プレフィクス構文(expression-prefix syntax)においても、スペースの適正な数は0。それ以外ではスペースの適正な数は1。構文クラスのテーブルを参照のこと。
以下の例では最初に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 ----------
このコマンドはポイントを取り囲むすべてのスペースを1つのスペース、nが指定された場合はn個のスペースで置き換える。リターン値はnil
。
この関数はポイントを取り囲む空行を削除する。ポイントが前後に1行以上の空行がある空の行にある場合には、1行を除いてそれらすべてを削除する。ポイントが孤立した空行にあればその行を削除する。ポイントが空でない行にあれば、その直後にあるすべての空白を削除する。
空行とはタブまたはスペースのみを含む行として定義される。
delete-blank-lines
はnil
をリターンする。
startとendで定義されるリージョン内から末尾の空白文字を削除する。
このコマンドはリージョン内の各行の最後の非空白文字後にある空白文字を削除する。
このコマンドがバッファー全体(マークが非アクティブな状態で呼び出された場合やLispからendとnil
で呼び出された場合)にたいして動作する場合には、変数delete-trailing-lines
が非nil
ならバッファーの終端行の末尾の行も削除する。