コーディングしていると、複数の行に文字列を一括編集したり、
複数行の先頭、末尾に対して追加/削除したいケースが多々。
そんな時に、タイトルの2つを組合せて一気にやっつけることが出来る。
使い始めたばかりなので、特にキーバインドなど自分向け最適化の余地はありそうだが、
勢いで投稿してから、ゆっくりと馴染ませて行こうかと。
multiple-cursors.el
複数行編集のためのpackage。
リンク先のVideoを見ると一発丸分かり。
smartrep.el
連続操作を楽にするためのpackage。
複数行編集に限らず、使い方によっては色々と幸せになれるはず。
設定
主に↓を参考にさせていただいた。
multiple-cursors.elのキーバインドを少しだけ改善
のだったと思うが、かなりキーバインドが違う...な。
(require 'multiple-cursors)
(require 'smartrep)
(declare-function smartrep-define-key "smartrep")
(global-set-key (kbd "C-M-c") 'mc/edit-lines)
(global-set-key (kbd "C-M-r") 'mc/mark-all-in-region)
(global-unset-key "\C-t")
(smartrep-define-key global-map "C-t"
'(("C-t" . 'mc/mark-next-like-this)
("n" . 'mc/mark-next-like-this)
("p" . 'mc/mark-previous-like-this)
("m" . 'mc/mark-more-like-this-extended)
("u" . 'mc/unmark-next-like-this)
("U" . 'mc/unmark-previous-like-this)
("s" . 'mc/skip-to-next-like-this)
("S" . 'mc/skip-to-previous-like-this)
("*" . 'mc/mark-all-like-this)
("d" . 'mc/mark-all-like-this-dwim)
("i" . 'mc/insert-numbers)
("o" . 'mc/sort-regions)
("O" . 'mc/reverse-regions)))
今の所、
mc/edit-lines
または mc/mark-all-in-region
と mc/mark-(next|previous)-like-this
の組合せばかりしか使用していないが、それでも十分に重宝している。
使いこなすためにも、他も積極的に利用していきたい所。