Candidate window reversal
Jumping to newlines with
at-full style from shifting text sometimes
at-full interaction with tabs
When at a tab, visualize it using
Fix overlay issue when the same buffer is in two windows
Quote punctuation chars
Update screenshot for
avy-goto-char in README.md
C-: as the new suggested binding instead of the pi char.
avy-goto-line can now break into
Just enter a digit and you’ll be transferred into
with that digit already entered. This means that you can just bind
M-g g to
avy-goto-line without losing anything.
avy-goto-line now works with all kinds of overlay styles
Any of the following do something different now:
(setq avy-styles-alist '((avy-goto-line . post))) (setq avy-styles-alist '((avy-goto-line . at))) (setq avy-styles-alist '((avy-goto-line . at-full))) (setq avy-styles-alist '((avy-goto-line . pre)))
Non-nil when searches should ignore case, so e.g.
will match both “b” and “B”. On by default. Use this to turn off this
(setq avy-case-fold-search nil)
Enter one char, and select a visible word or subword that starts with
it, depending on
subword-mode. Move the point there.
avy-move-line should remove empty line after original one is moved
avy-move-line now takes a prefix arg
avy-move-line to move 3 lines at once.
Most commands can be used non-interactively
(defun avy-goto-lp () (interactive) (avy-goto-char ?\())
This command only goes to the “(” character. This is actually very similar to =lispy-ace-paren=, except the implementation is only one line.
(almost) all defcustoms are explained on the wiki
Allow all operations to work across frames
You have to customize
avy-all-windows for this. By default, it’s set
to work on all windows on the current frame.
To make it work only on the current window, use:
(setq avy-all-windows nil)
To make it work on all frames, use:
(setq avy-all-windows 'all-frames)
avy-goto-char reduced only to the current line. Few
candidates means very short decision chars path.
New overlay style
How to use it:
(setq avy-style 'de-bruijn)
What it does: when your leading chars are clumped up together, it’s
impossible to overlay the decision path without shifting the buffer
text a bit. For example, with the word “buffer”, you
avy-goto-char “b”, and:
- the path for the first “f” is “aj”
- the path for the second “f” is “ak”
It’s not possible to overlay 4 characters over “ff” in “buffer”. But
de-bruijn style, which results in the path being “aj” and
“jk”. It’s possible to overlay “ajk” just fine.
Pros and cons of
de-bruijn over other styles:
- a pro is that it’s possible to display the full decision path for clumped up chars, which is truncated for other styles
- a con is that the decision path is of the same length (e.g. 2 or 3) for all candidates, while with other styles it’s possible to have a few candidets with a shorter path.
This is meant for visual modes like
that can have a huge number of chars in a single window. Which results
in a huge number of candidates even in other windows.
(setq avy-ignored-modes '(image-mode doc-view-mode pdf-view-mode))
New tutorial on writing custom commands
New face setup
avy-lead-faces will determine the faces used to color
the current decision depth you’re in. For example, if to select a
particular candidate you need to press “abc”:
- “a” will be highlighted with a face that corresponds to depth 3
- “b” will be highlighted with a face that corresponds to depth 2
- “c” will be highlighted with a face that corresponds to depth 1
But if another candidate needs “ef”:
- “e” will be highlighted with a face that corresponds to depth 2
- “f” will be highlighted with a face that corresponds to depth 1
You can use this, for example, to interpret one character as another in
(setq avy-translate-char-function (lambda (c) (if (= c 32) ?a c)))
This will translate
SPC (32) into
a. So you can press either
SPC to mean “a”.
avy-isearch works for different styles
Switch the default style from
I’ve come to like
at-full more than
pre over time. The difference
pre hides no chars in your buffer, while
Use this to restore the previous default behavior:
(setq avy-style 'pre)
de-bruijn to the defcustom of
Respect the current input method for target chars
avy-goto-subword-0 shouldn’t offer invisible chars
Add misc punctuation to subword commands
Add padding for wide-width chars (ex. Japanese and Chinese)
Push mark for numeric line
Allow numeric prefix arg
The old behavior remains for ARG 1 or 4. For all other ARG, simply go to that line. See #86.
Don’t error on end of buffer
Fix for narrowed regions
May read as many chars as you want
Highlight matches while reading chars
Highlight depending on
Make faster for
Add case fold search
Keep the same selectors for the second pass
Copy/move to initial window
Search only in the visible region
Fix jumping to the last char of a folded Org outline
Fix for both
Beep when there are no matches
Simplify overlay code
Most functions reuse
Fix de-bruijn “no catch for tag”
Fix overlays at
Don’t shorten selector string for
Fix interaction with
Allow non-printing keys in
Now you can set avy-keys also to the arrow keys and page up/down, e.g.
(setq avy-keys '(left right up down prior next))
and those will be displayed as ▲, ▼, ◀, ▶, △, ▽ in the overlays. The
display is controlled by the variable
Allow to switch action midway from goto to kill/mark/copy
For example, suppose you have:
(global-set-key (kbd "M-t") 'avy-goto-word-1)
- To jump to a certain word starting with “w” (e.g. first one on
M-t w a
- To copy the word instead of jumping to it:
M-t w na.
- To mark the word after jumping to it:
M-t w ma.
- To kill the word after jumping to it:
M-t w xa.
You can customize
avy-dispatch-alist to modify these actions.
Goes back to the last location of
- has its own history,
- handles multiple frames.
Allows to modify the behavior of
Allows to customize the behavior of
Allows to customize the behavior of
avy-goto-subword-1 by adding extra chars that should match as word