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 candidates 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 ▲, ▼,
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
Save selected window and frame. See #133.
Copy line for el:avy-goto-line. See #191.
ESC fail silently when reading char. See #137.
Display error message on mouse clicks. See #226.
Update el:avy-current-path before returning. See #226.
ESC. See #249.
Fix for el:org-toggle-link-display. See #261.
Fix for el:buffer-invisibility-spec being t. See #264.
Allow “invisible” ‘org-link. See #269.
Works for “^A”-“^Z”, see #167.
Add char at window start if empty, See #145.
Add option to limit scope. See #235.
Check el:char-after. See #163.
Escape regex. See #147.
C-j. See #153.
C-h to delete. See #193.
Obey el:avy-background for the initial search. See #259.
Fix for empty buffer. See #238.
Add ability to display candidates from bottom to top. See #236.
More consistent face order. See #270.
New functions have been added as drop-in replacements of double-dash (private) avy functions that were used in other packages and configs. Please replace the references to the obsolete functions.
New API function to replace el:avy–process. See #266.
Kill a word with el:avy-goto-char without moving there.
Yank sexp starting at selected point at the current point. See #183.
Kill sexp starting on selected point and yank into the current location. See #207.
Kill from point up to selected point. See #234.
New el:avy-style setting: ‘words
Use this setting:
(setq avy-style 'words)
And you’ll see overlays like “by”, “if”, “is”, “it”, “my” for 2-letter sequences, and “can”, “car”, “cog” for 3-letter sequences. You might find them easier to type than “hla”, “lls” and “jhl”. But you will have to adjust your el:avy-dispatch-alist, e.g. to use only upper case characters.
Use it to customize the order of candidates with relation to point. The default is for el:avy-goto-char to have the shortest overlay for candidates closest to point. See #242.
When non-nil el:avy-goto-line will display the line overlay next to the first non-whitespace character of each line. See #244.
When non-nil, and there is only one candidate, jump there. See #250.
Customize keys which delete the last read char. The defaults are
DEL. See #251.
Function to all before el:avy-action. See #260.
Call el:avy-goto-line and move to the end of the line. See #240.
Minor mode that uses avy hints for el:linum-mode.
Go to the next candidate after el:avy-read. Example config:
(defhydra hydra-avy-cycle () ("j" avy-next "next") ("k" avy-prev "prev") ("q" nil "quit")) (global-set-key (kbd "C-M-'") 'hydra-avy-cycle/body)
After e.g. el:avy-goto-char or el:avy-goto-char-timer, use the above hydra to cycle between the last candidates. See #254.
*-above and *-below variants
Command versions restricted to matches before or after the point.
kill and save region functionality
New avy-enabled commands:
New avy-enabled commands:
Show the number of matches so far in the prompt. See #253.
Ignore mistyping when no candidates are available. See #256.
When the overlays are shown, press
? to get dispatch help.