header

2013年6月5日水曜日

Emacsのelectric-pair-modeをコメント行かそれ以外かで動作を変える

Emacs24からの新機能electric-pair-modeをご存知でしょうか?
一度の入力で""や()を2つpairで自動で挿入してくれる機能です。
便利な反面コードの中の文字列を編集しているときに
2つペアで挿入されて違うのに!!って思うことがありました。
そこでflyspell用の関数flyspell-generic-progmode-verifyという、
コメント行かそうでないか判別する関数があったので
それを使ってコードを書いてみました。

(electric-pair-mode)
(require 'init_ispell)
(defun my/electric-pair-mode ()
(interactive)
(if (flyspell-generic-progmode-verify)
(setq electric-pair-mode nil)
(setq electric-pair-mode t)))

(add-hook 'post-self-insert-hook 'my/electric-pair-mode)


まだ設定を変えて使い始めたばかりなので、便利かそうでないかは
みえてきてないのですが、electric-pair-modeに不満のあるかたは
試してみてもよいのではないでしょうか?


2 件のコメント:

  1. 似たようなことを実現したくて検索したらこのエントリーに辿り着きました。
    自分の場合は around-advice を使うことにしました。ご参考まで。

    コメント内と文字列内で electric-pair-mode を無効化する - あらびき日記
    http://d.hatena.ne.jp/a_bicky/20131221/1387623058

    返信削除
    返信
    1. コメントありがとうございます。
      ブログ拝見しました。自分のより綺麗に書けてていいですね。
      ぼくも真似しようと思います。

      削除

Popular Posts

Blogger templates

Blogger news