LoginSignup
3
0

More than 5 years have passed since last update.

helm-swoop で前回のクエリを保持する

Last updated at Posted at 2017-11-19

helm-swoop で前回の検索文字列を覚えていてほしいと思ったのでこうしてみました。

init.el
(defun my-helm-swoop-resume-last-query ()
  "swoop with last query."
  (interactive)
  (helm-swoop :$query (if (boundp 'helm-swoop-last-query) helm-swoop-last-query "")))
(global-set-key (kbd "C-s") 'my-helm-swoop-resume-last-query)

それらしき関数なり設定なりが見当たらなかったので作ってみました。便利便利。

勘違いしていたので訂正

以降は 2017/11/24 に追記しました。

そもそも helm-swoop の仕様は前回の検索語をそのまま再現するようになっていました。私が前回の検索語をクリアするように設定していたのを忘れていました。その設定は

init.el
(setq helm-swoop-pre-input-function (lambda () ""))

というものでした。つまりわざわざ関数を作らなくても良かったのです (マヌケ過ぎる)。

それでしばらく検索語が再現されるようにして使っていましたが不便です。新たな検索語を入れるときに minibuffer をクリアしないと再現された検索語に追記になってしまいます。これがどうも不便でクリアするように設定したようです。

そもそも M-p を押せばヒストリがたどれます。ですが、それはなんか遠いです。つまり C-s M-p はなんとなく面倒です。isearch のように2度押したら前回の検索語が入るようになって欲しいです。

ということで上記検索語クリアの設定はそのままにこうしてみました;

init.el
(setq my-helm-swoop-trigger-key (kbd "C-s"))
(eval-after-load "helm-swoop"
  (lambda ()
    (define-key helm-map my-helm-swoop-trigger-key 'previous-history-element)))
(global-set-key my-helm-swoop-trigger-key 'helm-swoop)

helm-mapC-s なんてよく使いそうなキーをバインドしていいのかなと3秒だけ躊躇しましたがそんなキー使った記憶がないので設定しました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0