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の正規表現でマークできます。

20150420052510.png
Fig1: M-%でPerlの正規表現を入力すると

20150420052518.png
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

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。