タグ別アーカイブ: 正規表現

数字をインクリメントしつつ置換

数字をインクリメントしつつ行コピー と似たような感じで、
複数行のテストデータなんかをインクリメントしつつコピペできたら楽なのになあ、と調べていたら
正規表現置換(query-replace-regexp)で連番機能が使えることを知った。

GNU Emacs Manual(日本語訳): Regexp Replace

置換先の文字列中に”\#”を書けば、その部分がゼロ始まりの連番になる。

というか連番に限らず普通にS式が使えるのか。
たとえばゼロ始まりじゃなく1始まりにしたいなら、

\,(+ \# 1)

使いこなせる気がしないけど使えたら便利なんだろうな…

参考

 

visual-regexp-steroids がいつのまにか使えなくなった(emacs24.3)

emacsでPerl風の正規表現を使うやつ で導入して快適に使用していた visual-regexp-steroids 、いつのまにかエラーが出るようになっていた。

void-function pcre2el error

pcre2elは問題なくインストールされている。んんん…?
と思っていたら、ちょっと前にパッケージのアップグレードをした際にpcre2elがアップグレードされており、
その中で with-eval-after-load が使われていたのでした。。。

これ、どうやらemacs24.4から使えるマクロらしい。
私のemacsは24.3。うん、これが原因っぽい。

というわけでpcre2elをダウングレード。無事動くようになりました。
こういうことがあるからアップグレードの際は古いパッケージを消さずに残しておくべきですね。
(package.elでバージョン固定とかの管理がうまいことできればいいんだけどなー)
(というかそろそろemacs24.4を入れるべきか)

 

emacsでPerl風の正規表現を使うやつ

emacs visual-regexp-steroids.el : 【正規表現革命】isearchや置換でPerl/Pythonの正規表現を使おうぜ! | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット | るびきち「日刊Emacs」

(require ‘visual-regexp-steroids)
(setq vr/engine ‘pcre2el)
(global-set-key (kbd “C-M-%”) ‘vr/query-replace)

以前 foreign-regexp を導入しようとしたけどWindows上ではなんかうまくいかなくて諦めたんですがこれはちゃんと動いた。
今まで正規表現置換はなんだかんだ使いこなせなくて外部ツールに頼ってたんだけどこれでemacs上で完結できる予感…!