次: , 前: Text Properties, 上: Text


31.20 文字コードの置換

つぎの関数は、指定した領域内の文字をそれらの文字コードに基づいて置き換えます。

— 機能: subst-char-in-region start end old-char new-char &optional noundo

この関数は、カレントバッファのstartendで定義される領域の すべての文字old-charを文字new-charに置き換える。

noundonil以外であると、 subst-char-in-regionはアンドゥ用の変更を記録せず、 バッファに変更済みの印も付けない。 この機能は、選択表示(see 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 ----------
     
— 機能: translate-region start end table

この関数は、バッファのstartendのあいだの文字に変換表を適用する。

変換表tableは文字列であり、 (aref table ochar)は、 ocharに対応する変換した文字を与える。 tableの長さが256未満であると、 tableの長さより大きなコードの文字は変換によっては変更されない。

translate-regionの戻り値は、 変換によって実際に変更した文字の個数を返す。 これには、変換表で自分自身に変換された文字は数えない。