対応する全角括弧を自動挿入
どもです。
skeleton.el を使っての,対応する括弧とかの自動挿入って便利ですよね。
これまでの基本的な設定は,以下。
他にはメジャーモード毎にちょいと変更している感じ。
;; ref: http://www.emacswiki.org/cgi-bin/wiki/SkeletonMode (require 'skeleton) (setq skeleton-pair t) (global-set-key (kbd "(") 'skeleton-pair-insert-maybe) (global-set-key (kbd "[") 'skeleton-pair-insert-maybe) (global-set-key (kbd "{") 'skeleton-pair-insert-maybe) (global-set-key (kbd "`") 'skeleton-pair-insert-maybe) (global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
しかし,日本語を書いている時には,カギ括弧("「"のことね)を入力することがあり,
これに対応する閉じカギ括弧を自動挿入してほしいと思い始めて,1年くらい。
本日,やっとこさ解決したので,メモ。
日記とかの文章を以外にも,例えば,コーディングしていて,
コメントを日本語で書き,かつ,「」を使用する場合とかにも便利かなと。
上記設定に下記を追加すればオッケー牧場。
(add-to-list 'skeleton-pair-alist '(?「 _ ?」)) (global-set-key (kbd "「") 'skeleton-pair-insert-maybe)
最初の設定と合わせると,以下の様になります。
;; ref: http://www.emacswiki.org/cgi-bin/wiki/SkeletonMode (require 'skeleton) (setq skeleton-pair t) (global-set-key (kbd "(") 'skeleton-pair-insert-maybe) (global-set-key (kbd "[") 'skeleton-pair-insert-maybe) (global-set-key (kbd "{") 'skeleton-pair-insert-maybe) (global-set-key (kbd "`") 'skeleton-pair-insert-maybe) (global-set-key (kbd "\"") 'skeleton-pair-insert-maybe) (add-to-list 'skeleton-pair-alist '(?「 _ ?」)) (global-set-key (kbd "「") 'skeleton-pair-insert-maybe)
skeleton.el 内の skeleton-pair-default-alist を参考に書いたのですが,
気になるのは,skeleton-pair-default-alist で設定されている,
括弧系に対する,バッククオートされているヤツ。
(skeleton.el から引用)
(defvar skeleton-pair-default-alist '((?( _ ?)) (?\)) (?[ _ ?]) (?\]) (?{ _ ?}) (?\}) (?< _ ?>) (?\>) (?« _ ?») (?\») (?` _ ?')))
そいつの役目がわからん。知っている人いたら教えて下さい。
なんかを制御しているんだろうけど,ちんぷんかんぷん。
また,マルチバイトな文字についてですが,Emacs Lisp Manual をチラ見した感じ,
そのまま書いてなんとなく大丈夫そうな感じなので書いたらできたというパターンです。
バッファの文字コードについては,utf-8-unix のみでしか試してないので,
他の文字コードを使用したときにどうなるかは知らん。
あー,今 sjis-dos で試したら大丈夫だったので他のでもいけるんじゃん。たぶんだけど。
また,他の全角括弧やれ【】『』とかもやろうと思えば出来ると思うけど,
その辺は「かっこ」と入力して変換した方が早いかもしれないとかなんとか。
また1つ快適になってしまった Emacs たんでした。