いまさら感もありますが mykie.el がとても便利です。
yuutayamada/mykie-el · GitHub - https://github.com/yuutayamada/mykie-el
状況に応じてキーをアサインできるこちらを利用することで、今までできなかった便利なキー設定が可能です。
まずはこちら。
(global-set-key (kbd "C-;") '(lambda () (interactive) (mykie :default 'helm-my :region 'helm-occur :region-handle-flag 'copy)))
普段は C-; で helm を起動しますが、リージョンのある場合は helm-occur を起動します。yank するだけですぐにリージョンの内容で helm-occur ができて便利ですね。
次はこちら。
(global-set-key (kbd "o") '(lambda () (interactive) (mykie :default 'self-insert-command :region 'occur-by-moccur :region&C-u 'moccur-grep-find :region-handle-flag 'copy)))
普段はそのまま o を入力しますが、リージョンのある場合は occur-by-moccur を起動します。C-u o とした場合は moccur-grep-find が起動します。yank するだけでリージョン内容からものが探せて便利ですね。
最後にこちら。
(global-set-key (kbd "r") '(lambda () (interactive) (mykie :default 'self-insert-command :region '(progn (deactivate-mark) (anzu-query-replace)) :region&C-u 'anzu-query-replace :region-handle-flag 'copy)))
普段はそのまま r を入力しますが、リージョンのある場合はバッファ全体に対して anzu-query-replace を実行します。C-u o するとリージョン内での anzu-query-replace となります。yank するだけでリージョン内容をすぐに探せて便利ですね。
mykie.el とは直接関係ないのですが、query-replace に最初から置換対象を渡して起動できると、一度 yank しなくてもよいのでもっと楽になりそうですがひとまずこれで使っています。