• 締切済み

emacs ediffで全角、半角の区別なしの検索

 emacs ediffで、日本語の全角、半角を区別しないで検索する方法を教えてください。mac Sierraでemacs 25.2、または、windows7(off-line) cygwin のemacs 24.5位を使っています。  google検索してみましたが、上手くヒットしません。  とりあえずの対応策として、ediff-buffersを走らせる前に、全領域にjapanese-zenkaku-region を適用するようにしています。ですから、これをhook?などで「自動化」してくれる方法でも結構です。ただし、elispはかろうじて読める程度の知識レベルです。

みんなの回答

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

> google検索してみましたが、上手くヒットしません。 ediff というより diff コマンドの機能ですから、検索するなら全角半角を無視するような diff の拡張、改造版ですね。 ediff の #i (ignore case) コマンドだと diff -i の拡張みたいな感じで探せばありそうな気はします。 > japanese-zenkaku-region を適用するようにしています。ですから、これをhook?などで「自動化」してくれる方法でも結構です。ただし、elispはかろうじて読める程度の知識レベルです。 これでいいなら (add-hook 'ediff-prepare-buffer-hook (lambda () (japanese-zenkaku-region (point-min) (point-max) 'kana-only))) 片仮名以外も全角にするなら 'kana-only 消すか nil に。 ただ初期状態だと元々半角の部分がハイライトされたままなので ! (update) してみてください。ちょっと挙動が変な気もしますが、他の hook とかだと面倒な感じですし、! すればいいということの気もします。 あと試すのは上記コードを *scratch* に貼り付けて C-j それで良ければ .emacs or init.el に yank

peachn
質問者

お礼

回答、ありがとうございました。 diff でgoogle検索してもヒット数が多すぎたり、絞り込むとヒットしなかったりで、見つかりませんでした。しかし、hookを使う方法はうまくいきました。

関連するQ&A

専門家に質問してみよう