Next: , Previous: , Up: Text   [Contents][Index]


33.20 文字コードの置き換え

以下の関数は文字コードにもとづいて指定されたリージョン内の文字を置き換えます。

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

この関数はstartendで定義されるカレントバッファーのリージョン内に出現する文字old-charnew-charに置き換える。これら2つの文字はマルチバイト形式で同じ長さでなければならない。

noundoが非nilならsubst-char-in-regionはundo用に変更を記録せず、バッファーを変更済みとマークしない。これは古い機能である選択的ディスプレイ(Selective Displayを参照)にとって有用だった。

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 ----------
Function: subst-char-in-string fromchar tochar string &optional inplace

この関数はstring内のすべての文字fromchartocharに置き換える。デフォルトではstringのコピーで置き換えは発生するが、オプション引数inplaceが非nilなら、この関数はstring自体を変更する。いずれの場合でも、この関数は結果となる文字列をリターンする。

Command: translate-region start end table

この関数はバッファー内の位置startendの間の文字にたいして、変換テーブル(translation table)を適用する。

変換テーブルtableは文字列か文字テーブル。(aref table ochar)ocharに対応した変換後の文字を与える。tableが文字列なら、tableの長さより大きいコードの文字はこの変更により変更されない。

translate-regionのリターン値は、その変換により実際に変更された文字数。変換テーブル内でその文字自身にマップされる文字は勘定に入らない。