Spacemacsでieditを使う

  • emacs: v25.2.1
  • Spacemacs: v0.200.2

http://spacemacs.org/doc/DOCUMENTATION.html#replacing-text-with-iedit

毎回使い方を忘れるのでメモ。

SPC s eでevil-iedit-stateに入る。 region選択している場合はそのregion内のテキストが対象に、 region選択していない場合はカーソルがあるキーワードが対象になる。 同buffer内の対象テキストと同じものをまとめて編集することができる。 evil-iedit-state中はiでinsert stateにしたり、 vでregion選択してcで置き換えたりと、通常の編集と同じ方法が使える。

expand-regionからならeでevil-iedit-stateに入れる。 SPC vでexpand-regionで単語選択。 vを繰り返し入力するとregionが広がる。 日本語のように単語の区切りが空白文字でない場合は思った通りにexpandされないので不便。

evil-iedit-state中に使えるキーバインドがいくつか設定されている。 詳細は冒頭に貼ったドキュメント参照。 よく使うものを挙げておくと:

  • F: 対象範囲を関数内に限定
  • V: 対象テキストが含まれない行を隠す
  • n/N: 次/前の対象テキスト出現箇所に移動

使い方を覚えておくと変数名の変更などの簡単なリファクタリングがサクッとできるようになって便利。

もちろんSpacemacsを使っていなくてもieditを単体で使っても同じことができる。はず。

https://www.emacswiki.org/emacs/Iedit