GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/User_002dLevel-Deletion.html ・ emacs-doc.conao3.com

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

この節では、テキストを削除するための上位レベルのコマンドや、主にユーザー向けでありながらLispプログラムにおいても有用なコマンドについて説明します。

コマンド: delete-horizontal-space &optional backward-only

この関数は、ポイント周辺のすべてのスペースとタブを削除します。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 ----------
コマンド: delete-indentation &optional join-following-p beg end

この関数は、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 の役割です。

コマンド: 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 ----------
コマンド: just-one-space &optional n

このコマンドは、ポイント周辺のスペースやタブを単一のスペースに置換します(n が指定されている場合は n 個のスペースに置換します)。戻り値は nil です。

コマンド: delete-blank-lines

この関数は、point の前後にある空行を削除します。point が空行上にあり、その前後に1つ以上の空行がある場合は、そのうち1行を除くすべてが削除されます。point が単独の空行上にある場合は、その空行が削除されます。point が空行ではない行上にある場合、このコマンドはその直後に続くすべての空行を削除します。

空行とは、タブとスペースのみを含む行と定義されます。

delete-blank-lines は nil を返します。

コマンド: delete-trailing-whitespace &optional start end

start と end で定義される領域内の末尾の空白を削除する。

このコマンドは、リージョン内の各行において、最後の非空白文字以降の空白文字を削除します。

このコマンドがバッファ全体に作用する場合(すなわち、マークが無効な状態で対話的に呼び出された場合、またはLispから end や nil を用いて呼び出された場合)、変数 delete-trailing-lines が nil 以外であれば、バッファ末尾の後続行もすべて削除します。