この節では、テキストを削除するための上位レベルのコマンドや、主にユーザー向けでありながらLispプログラムにおいても有用なコマンドについて説明します。
この関数は、ポイント周辺のすべてのスペースとタブを削除します。nilを返します。
backward-only が nil
でない場合、この関数はポイントより前のスペースとタブを削除しますが、ポイントより後のものは削除しません。
以下の例では、delete-horizontal-spaceを各行に1回ずつ、計4回呼び出しており、その都度、行の2文字目と3文字目の間にドットを入れています。
---------- 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 ----------
この関数は、line point が位置する行を直前の行に結合し、結合箇所の空白を削除し、場合によってはそれを1つのスペースに置き換えます。join-following-p が nil
以外の場合、delete-indentation
は代わりにこの行を次の行に結合します。そうでない場合、beg および end が nil
以外であれば、この関数はそれらが定義する領域内のすべての行を結合します。
インタラクティブコールにおいて、join-following-pは接頭辞引数であり、begとendはそれぞれ、リージョンが有効な場合はその開始位置と終了位置を、そうでない場合はnilを表します。関数はnilを返します。
塗りつぶしプレフィックスがあり、結合される行の2行目がそのプレフィックスで始まる場合、delete-indentation は行を結合する前に塗りつぶしプレフィックスを削除します。塗りつぶし用のマージンを参照してください。
以下の例では、点は ‘events’ から始まる直線上にあり、直前の行に末尾のスペースがあっても影響はありません。
---------- 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 の役割です。
この関数は、文脈に応じて、point の周囲にあるすべての水平空白を、1つのスペースまたはスペースなしのいずれかに置き換えます。nil を返します。
行の先頭または末尾では、適切なスペース量はゼロです。閉じ括弧構文を持つ文字の前、あるいは開き括弧や式接頭辞構文を持つ文字の後においても、スペースを入れないのが適切です。それ以外の場合は、スペース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 ----------
このコマンドは、ポイント周辺のスペースやタブを単一のスペースに置換します(n が指定されている場合は
n 個のスペースに置換します)。戻り値は nil
です。
この関数は、point の前後にある空行を削除します。point が空行上にあり、その前後に1つ以上の空行がある場合は、そのうち1行を除くすべてが削除されます。point が単独の空行上にある場合は、その空行が削除されます。point が空行ではない行上にある場合、このコマンドはその直後に続くすべての空行を削除します。
空行とは、タブとスペースのみを含む行と定義されます。
delete-blank-lines は nil
を返します。
start と end で定義される領域内の末尾の空白を削除する。
このコマンドは、リージョン内の各行において、最後の非空白文字以降の空白文字を削除します。
このコマンドがバッファ全体に作用する場合(すなわち、マークが無効な状態で対話的に呼び出された場合、またはLispから end や nil を用いて呼び出された場合)、変数 delete-trailing-lines が nil
以外であれば、バッファ末尾の後続行もすべて削除します。