- swiper 20170804.1038(in MELPA)
- Isearch with an overview. Oh, man!
概要
3/10に登場したばかりのこのelispは、活発に開発されていてアツいです!
swiper.el は正規表現isearchに一覧を付加するものです。
同じ目的では helm を使ったhelm-swoop.el(大々的レビュー) が鉄板です。
しかし、 helm-swoop.el はMigemoに対応 している上、
スペースに絞り込み検索の意味を持たせています。
対して swiper.el は純粋に正規表現isearchに一覧を付けた感じです。
とはいえ M-x occur のように別ウィンドウで一覧するわけではなく、
エコーエリアに謙虚に一覧します。
正規表現の括弧に色を付けることもできるので、
その点においてはhelm-swoop.elよりも M-x re-builder 感覚です。
helmのようにウィンドウを分割しない上、
操作感覚は通常の正規表現isearchと変わりません。
そこで本設定では正規表現isearchの置き換えとしてC-u C-sで
M-x swiper を起動させるようにしました。
ちょっと正規表現検索をしたいならばswiperを
行の絞り込み検索がしたいならばhelm-swoop
というふうに住み分けるといいでしょう。
候補選択は ivy.el(レビュー) のインターフェースです。
どうせ一覧isearchなのだから、置換と連携できたらなと思います。
現状で正規表現置換をするならば、visual-regexp.el(レビュー) がいいです。
今後の発展が楽しみです。
Fig1: C-u C-sを押してswiperを起動
Fig2: defunと入力して全関数を一覧
Fig3: 正規表現を入力
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてswiperを使う方は
以下のコマンドを実行します。
M-x package-install swiper
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name swiper
設定 150318051516.swiper.1.el(以下のコードと同一)
(defun isearch-forward-or-swiper (use-swiper) (interactive "P") (let (current-prefix-arg) (call-interactively (if use-swiper 'swiper 'isearch-forward)))) (global-set-key (kbd "C-s") 'isearch-forward-or-swiper) ;;; バックエンドのivyがスペースを".*"に置換してしまうため、無効にする ;;; これをしないと純粋に正規表現isearchの置き換えにならない (require 'ivy) (fset 'ivy--regex 'identity)
実行方法
$ wget http://rubikitch.com/f/150318051516.swiper.1.el $ emacs -Q -f package-initialize -l 150318051516.swiper.1.el
本サイト内の関連パッケージ
- swoop - Peculiar buffer navigation for Emacs
- helm - Helm is an Emacs incremental and narrowing framework
- hide-lines - Commands for hiding lines based on a regexp
- visual-regexp - A regexp/replace command for Emacs with interactive visual feedback
- ido-occur - Yet another `occur' with `ido'.
- loccur - Perform an occur-like folding in current buffer
- helm-swoop - Efficiently hopping squeezed lines powered by helm interface
- ivy - Incremental Vertical completYon
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。