- visual-regexp-steroids 20170221.1853(in MELPA)
- Extends visual-regexp to support other regexp engines
M-x package-install pcre2el
概要
「Emacsの正規表現はバックスラッシュだらけでうざい」
みんな思っていることでしょう。
PerlやPythonを知っている人は当然これらの正規表現を使いたいはずです。
visual-regexp-steroids.el はこの願いを叶えてくれます。
しかもvisual-regexp.el(レビュー) ベースなので
re-builder のように対話的に正規表現を組み立てられます。
また、正規表現isearchもPerl/Pythonの正規表現が使えるようになります。
multiple-cursors.el(レビュー) にも対応していて、
M-x vr/mc-mark でPerl/Pythonの正規表現でマークできます。
Fig1: M-%でPerlの正規表現を入力すると
Fig2: こんな感じで置換後の結果がわかる
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてvisual-regexp-steroidsを使う方は
以下のコマンドを実行します。
M-x package-install visual-regexp-steroids
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name visual-regexp-steroids
Pythonの正規表現の方が得意
本設定ではPythonをインストールしていない人のために
pcre2el.el(レビュー) というPerlの正規表現(PCRE) から
Emacsの正規表現に変換するelispライブラリを使うようにしていますが、
visual-regexp-steroids.elはPythonの正規表現の方を得意としています。
なぜなら、Pythonの正規表現のスイッチI, M, S, Uを
対話的に切り替えられるようになっているからです。
IMSUはPython正規表現のドキュメント を参照してください。
設定 150420044640.visual-regexp-steroids.el(以下のコードと同一)
(require 'visual-regexp-steroids) (setq vr/engine 'python) ;python regexpならばこれ ;; (setq vr/engine 'pcre2el) ;elispでPCREから変換 (global-set-key (kbd "M-%") 'vr/query-replace) ;; multiple-cursorsを使っているならこれで (global-set-key (kbd "C-c m") 'vr/mc-mark) ;; 普段の正規表現isearchにも使いたいならこれを (global-set-key (kbd "C-M-r") 'vr/isearch-backward) (global-set-key (kbd "C-M-s") 'vr/isearch-forward)
実行方法
$ wget http://rubikitch.com/f/150420044640.visual-regexp-steroids.el $ emacs -Q -f package-initialize -l 150420044640.visual-regexp-steroids.el
本サイト内の関連パッケージ
- pcre2el - regexp syntax converter
- visual-regexp - A regexp/replace command for Emacs with interactive visual feedback
- phi-search - another incremental search & replace, compatible with "multiple-cursors"
- multiple-cursors - Multiple cursors for Emacs.
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。