Skip to content

Wilfred/refine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Refine

Build Status Coverage Status MELPA MELPA Stable

inspect and modify elisp variables

Refine provides a convenient UI for editing variables. Refine is not for editing files, but for changing elisp variables, particularly lists.

Table of Contents

Usage examples

edit_hook

Refine is great for editing large lists, such as hooks. In the above example, I insert and edit values in prog-mode-hook.

kill_ring

Refine is also a valuable debugging tool. In this example, I reorder items in the kill-ring so I paste the value I want.

Limitations

Refine deliberately modifies values in place. This is useful if you're working with a list that's shared between multiple variables, such as font-lock-defaults.

In some cases, this isn't possible (e.g. inserting into an empty list). In these cases, refine will overwrite your variable.

Keybindings

Editing:

command binding
refine-edit e or RET
refine-cycle c
refine-insert i
refine-insert-after a
refine-delete k
refine-move-forward s or <M-up>
refine-move-backward w or <M-down>

Moving around:

command binding
refine-next n
refine-previous p

Buffer commands:

command binding
refine-update g
kill-this-buffer q

Installation

Install from MELPA (recommended), or add refine.el to load-path.

Tests

You can run tests inside Emacs by just opening the test files and doing M-x eval-buffer M-x ert RET t RET.

Alternatively, you can run the test from a shell:

$ cask install
$ cask exec ert-runner

Note that refine has had infinite loop bugs during development, so you may need to press Ctrl-C if tests don't terminate.

Related projects

counsel-set-variable (part of ivy) is also an excellent way of editing variables in Emacs.

edit-list provides list editing in a very similar style to refine. It doesn't edit in-place, nor work as well for hooks, but does provide an elegant, Emacsy UI.

About

interactive value editing in emacs lisp

Resources

Stars

Watchers

Forks

Packages

No packages published