fnwiya's quine

自分自身を出力するブログ

{を補完して欲しいときと片方だけでいい時うまく使い分ける(smartchr)

smartparensなどを使っていると{だけ入力するのが意外と大変です。
- {を押す - C-dで}消す みたいな2コマンド必要になります。
かといって普段は{}と補完されたほうが便利なのでうまいことできないかと考えていたのですがsmartchrを使うとうまくいきました。

(use-package smartchr
  :config
  (global-set-key (kbd "=") (smartchr '(" = " " == " "=")))
  (global-set-key (kbd "+") (smartchr '(" + " "+" " += " "++")))
  (global-set-key (kbd "+") (smartchr '(" - " "-" " -= " "--")))
  (global-set-key (kbd "!") (smartchr '("!" " != ")))
  (global-set-key (kbd "&") (smartchr '(" && " "&")))
  (global-set-key (kbd "|") (smartchr '(" || " "|")))
  (global-set-key (kbd "{") (smartchr '("{ `!!' }" "{")))
  (global-set-key (kbd "(") (smartchr '("( `!!' )" "(")))
  (global-set-key (kbd "<") (smartchr '("< `!!' >" "<")))
  (global-set-key (kbd "[") (smartchr '("[ `!!' ]" "[")))
  (global-set-key (kbd "'") (smartchr '("\``!!''"  "\`")))
  (global-set-key (kbd "\"") (smartchr '("\"`!!'\""  "\"")))
  (global-set-key (kbd "\'") (smartchr '("\'`!!'\'"  "\'")))
)

キーの連続入力での出力をトグルで入れ替えられるので応用範囲は広いと思います。
スニペット的な使い方もできると思うので良い設定があればぜひ教えてくださいm(__)m