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

33.20 文字コードの置換

以下の関数は、指定した領域内の文字を文字コードに基づいて置換します。

関数: subst-char-in-region start end old-char new-char &optional noundo

この関数は、start と end で定義される現在のバッファ領域内において、文字 old-char のすべての出現箇所を文字 new-char に置換します。両文字は、マルチバイト形式において同じ長さである必要があります。

noundo が nil でない場合、subst-char-in-region はアンドゥ用の変更を記録せず、バッファを変更済みとしてマークしません。これは、従来の選択的表示機能(選択的表示 を参照)を制御する際に有用でした。

subst-char-in-region はポイントを移動させず、nil を返します。

---------- Buffer: foo ----------
This is the contents of the buffer before.
---------- Buffer: foo ----------

(subst-char-in-region 1 20 ?i ?X)
     ⇒ nil

---------- Buffer: foo ----------
ThXs Xs the contents of the buffer before.
---------- Buffer: foo ----------
関数: subst-char-in-string fromchar tochar string &optional inplace

この関数は、string 内の文字 fromchar をすべて tochar に置換します。デフォルトでは string のコピーに対して置換が行われますが、オプション引数 inplace が nil 以外の場合、関数は string 自体を変更します。いずれの場合も、関数は結果の文字列を返します。

既存の文字列を変更する際の制約については、文字列の変更を参照してください。

コマンド: translate-region start end table

この関数は、バッファ内の位置 start から end までの文字に変換テーブルを適用します。

変換テーブル table は文字列または文字テーブルであり、(aref table ochar) は ochar に対応する変換後の文字を示します。table が文字列の場合、table の長さを超えるコードを持つ文字は、変換によって変更されません。

translate-region の戻り値は、変換によって実際に変更された文字数です。これには、変換テーブル内で自身にマッピングされた文字は含まれません。