読者です 読者をやめる 読者になる 読者になる

wrap-region.elの紹介

emacs

リージョンを特定の文字列で囲う wrap-region.elの紹介

インストール

auto-install.elを設定済みの人は以下の S式を実行してください

(auto-install-from-url "https://raw.github.com/rejeep/wrap-region/master/wrap-region.el")

設定

  (require 'wrap-region)

  ;; グローバルに有効。個別の場合は (wrap-region-mode t)
  (wrap-region-global-mode t)

  ;; paredit.elで同様の機能があるため、念の為
  (add-to-list 'wrap-region-except-modes 'emacs-lisp-mode)
  (add-to-list 'wrap-region-except-modes 'scheme-mode)
  (add-to-list 'wrap-region-except-modes 'lisp-mode)
  (add-to-list 'wrap-region-except-modes 'clojure-mode)

機能の追加

デフォルトではリージョンを選択して ダブルクォート, シングルクォート,
左丸括弧, 左波括弧、左角括弧を入力すると対応するものでリージョンを囲って
くれます。独自にそれらを定義することもできます。詳しくは github
ドキュメントを見てください。

  ;; 第一引数:リージョンの先頭に挿入する文字
  ;; 第二引数:リージョン末尾に挿入する文字
  (wrap-region-add-wrapper "$" "$")

  ;; 第三引数:トリガとなるキー
  ;; 第四引数:有効にするモード
  (wrap-region-add-wrapper "/*" "*/" "#" '(css-mode java-mode))

  (wrap-region-add-wrapper "=over 4" "=back" "L" '(pod-mode))

イメージ

リージョンを選択

トリガである "L"を押す

おわりに

それだけでも結構使えそうな感じですが、thingopt-elexpand-region
組み合わせて使えばより便利になるんじゃないかなと思います。