• 締切済み

emacsで文字列の置換

新しい職場で emacs を使い始めたのですが、文字列の置換をすると動作が変です。 ・abc → DEF という置換をすると、なぜか ・abc → DEFbc となってしまいます。 M-% M-x replace-string のどちらで置換しても同じです。 とても困っています!!どなたかアドバイスを!!!

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

う~ん, 手元では普通の挙動しかしません. あとは, emacs -q から始めて読み込んでいる elisp ファイルを順に調べるくらいですかね....

white-tiger
質問者

補足

うーん、そうですね。 おつきあいいただきありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

手元の emacs (21.3) でやってみました. 手順は次の通り: 1.「 abc abc abc 」というテキストを作る. 2.「M-x replace-string」を打込む. 3.置換元として「abc」を, 置換後として「DEF」を指定する. 結果は「 DEF DEF DEF 」となりました. 「abc」が「DEFbc」になるとしたら, 「a」⇒「DEF」の指定をしたとしか思えないのですが, ちなみにその他の置換指定の場合はどうなるんでしょうか?

white-tiger
質問者

補足

他の場合も同様です。 どうも、 java モードの時だけ現れる現象のようです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

以下の項目を全て挙げてください. ・どのような文字列に対して, ・どのように置換しようとして, ・置換元・置換後の文字列として何を指定して, ・どのような結果を期待して, ・どのような結果が得られたのか

white-tiger
質問者

補足

(1) 文中の abc を DEF に置き換えようとします。 (2) 置換には M-% や M-x replace-string を使います。 (3)例えば「 abc abc abc 」という文字列に対して 前 abc → 後 DEF という置換をすると、「 DEF DEF DEF 」となってほしいのですが、「 DEFbc DEFbc DEFbc 」のようになってしまいます。 つまり、置換前の文字列から先頭文字を除いたもの(bc)が、置換後の文字列 (DEF)の直後に引っ付いた形になります。