refine 20170322.1527(in MELPA)
interactive value editing

概要

refine.el は、リストの値を編集するのに便利なユーザーインターフェースを提供します。
昨日紹介したedit-list.el(レビュー) はemacs-lisp-modeで直接編集する形ですが、
M-x refine を実行すると、viのようにコマンドベースで編集する画面が出てきます。

p(refine-previous) とn(refine-next)で要素を移動し、
RETあるいはe(refine-edit) で編集します。
「k(refine-delete)」で要素を削除します。
「i(refine-insert)」や「a(refine-insert-after)」で要素を追加するあたりがvi風味です。
また、M-<up> (refine-move-forward) 、M-<down> (refine-move-backward) のように
org-modeを思わせる要素の移動も可能です。

リストの編集コマンドは即座に変数に反映されます。
編集が終われば「q(kill-this-buffer)」でrefineから抜け出します。

refineはフックのような大きいリストを編集するのに便利です。
また、kill-ringの要素を入れ替えるとデバッグツールとして使えます。

edit_hook.gif
Fig1: 本家スクリーンショット(prog-mode-hook)

kill_ring.gif
Fig2: 本家スクリーンショット(kill-ring)

っと、ここまで書いてきましたが、edit-list.el
どちらかがいいかというと好みの問題だと思いました。

edit-list.elはemacs-lisp-modeのままで編集できるので
学習コストがほぼゼロであるメリットがあります。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

初めてrefineを使う方は
以下のコマンドを実行します。

M-x package-install refine

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name refine

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


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