以下の関数は、指定した領域内の文字を文字コードに基づいて置換します。
この関数は、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 ----------
この関数は、string 内の文字 fromchar
をすべて tochar に置換します。デフォルトでは string のコピーに対して置換が行われますが、オプション引数 inplace が nil 以外の場合、関数は string 自体を変更します。いずれの場合も、関数は結果の文字列を返します。
既存の文字列を変更する際の制約については、文字列の変更を参照してください。
この関数は、バッファ内の位置 start から end までの文字に変換テーブルを適用します。
変換テーブル table は文字列または文字テーブルであり、(aref table ochar) は ochar
に対応する変換後の文字を示します。table が文字列の場合、table の長さを超えるコードを持つ文字は、変換によって変更されません。
translate-region
の戻り値は、変換によって実際に変更された文字数です。これには、変換テーブル内で自身にマッピングされた文字は含まれません。