- swoop 20160120.915(in MELPA)
- Peculiar buffer navigation for Emacs
概要
まだレビューしていない興味深いパッケージがありました!
swoop.el は helm-swoop(大々的レビュー) と同じ作者による同種のパッケージです。
一言で言えばisearchとoccurのいいとこどりで、
文字入力するたびに検索結果表示が変わります。
最近は活発には更新されていませんが、
helmに依存していない分トラブルに強いと思います。
使い方もhelm-swoopとほぼ同じです。
isearchからswoopに移行できるし、
migemoにも対応しているし、
絞り込み検索もできます。
swoopは内部でaync(レビュー) ライブラリが使われており、
新規Emacsプロセスを立ち上げて検索をしています。
疑似マルチスレッドですね。
そしてhelm-swoopにない面白い機能が存在します。
それは、swoop中にswoop対象となるバッファの
フォントサイズを変更できる点にあります。
swoop対象バッファのフォントを小さくすることで、
表示行数を稼ぐことが可能になります。
helm非依存の類似パッケージにswiper(レビュー) がありますが、
あっちは絞り込み検索やmigemoに対応していません。
一見対応しているように思えますが、
実はクエリ中のスペースを「.*」でつなげた
正規表現を作成しているだけなので、
厳密な絞り込み検索ではありません。
migemo非対応は非日本人が開発者なので致し方ありませんが…
僕はhelm-swoopからswoopに乗り換えてみようと思います。
C-u C-sで M-x swoop-migemo が立ち上がるように設定しました。
また、isearchからC-oでもswoopに移行できます。
まだまだ機能は豊富なので、分かり次第レビューします。
Fig1: C-u C-s。helm-swoopと同様だが、フォントサイズが小さくなっている点に注目
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてswoopを使う方は
以下のコマンドを実行します。
M-x package-install swoop
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name swoop
設定 160808074006.swoop.el(以下のコードと同一)
;;; C-u C-sでswoop-migemo (defun isearch-forward-or-swoop-migemo (use-swoop) (interactive "P") (let (current-prefix-arg) (call-interactively (if use-swoop 'swoop-migemo 'isearch-forward)))) (global-set-key (kbd "C-s") 'isearch-forward-or-swoop-migemo) ;;; isearchからC-oでswoopへ移行 (define-key isearch-mode-map (kbd "C-o") 'swoop-from-isearch) ;;; 0.4秒ごとに更新すると重くならない (setq swoop-minibuffer-input-dilay 0.4) ;;; swoop対象バッファのフォントを小さくする (setq swoop-font-size: 0.5)
実行方法
$ wget http://rubikitch.com/f/160808074006.swoop.el $ emacs -Q -f package-initialize -l 160808074006.swoop.el
本サイト内の関連パッケージ
- pcre2el - regexp syntax converter
- ht - The missing hash table library for Emacs
- ido-occur - Yet another `occur' with `ido'.
- loccur - Perform an occur-like folding in current buffer
- async - Asynchronous processing in Emacs
- swiper - Isearch with an overview. Oh, man!
- helm-swoop - Efficiently hopping squeezed lines powered by helm interface
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。