0.3.0
Fixes
Candidate window reversal
See #27.
at-full
style
Jumping to newlines with See #5.
at-full
style from shifting text sometimes
Stop See #5.
at-full
interaction with tabs
Fix When at a tab, visualize it using tab-width
spaces.
See #43.
Fix overlay issue when the same buffer is in two windows
See #47 and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20607.
Quote punctuation chars
See #63.
avy-goto-char
in README.md
Update screenshot for Use C-:
as the new suggested binding instead of the pi char.
See #64.
New Features
avy-goto-line
can now break into goto-line
Just enter a digit and you’ll be transferred into goto-line
prompt
with that digit already entered. This means that you can just bind
M-g g
to avy-goto-line
without losing anything.
See #29.
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)))
See #17.
avy-case-fold-search
New defcustom Non-nil when searches should ignore case, so e.g. avy-goto-char
“b”
will match both “b” and “B”. On by default. Use this to turn off this
behavior:
(setq avy-case-fold-search nil)
See #34.
avy-goto-word-or-subword-1
New command Enter one char, and select a visible word or subword that starts with
it, depending on subword-mode
. Move the point there.
See #33.
avy-move-line
should remove empty line after original one is moved
See #40.
avy-move-line
now takes a prefix arg
Use e.g. M-3
before avy-move-line
to move 3 lines at once.
Most commands can be used non-interactively
Example:
(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.
See #44.
(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-in-line
New command This is avy-goto-char
reduced only to the current line. Few
candidates means very short decision chars path.
See #49.
de-bruijn
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
to with 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.
avy-ignored-modes
New defcustom This is meant for visual modes like doc-view-mode
or image-mode
that can have a huge number of chars in a single window. Which results
in a huge number of candidates even in other windows.
Current setting:
(setq avy-ignored-modes '(image-mode doc-view-mode pdf-view-mode))
See #57.
New tutorial on writing custom commands
See the the custom-commands wiki page and #55.
New face setup
New variable 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
See #53.
avy-translate-char-function
New variable You can use this, for example, to interpret one character as another in avy-keys
.
Example:
(setq avy-translate-char-function
(lambda (c) (if (= c 32) ?a c)))
This will translate SPC
(32) into a
. So you can press either a
or SPC
to mean “a”.
avy-isearch
works for different styles
See #61.
pre
to at-full
Switch the default style from I’ve come to like at-full
more than pre
over time. The difference
is that pre
hides no chars in your buffer, while at-full
doesn’t
shift text.
Use this to restore the previous default behavior:
(setq avy-style 'pre)
0.4.0
Fixes
avy-goto-char-timer
obeys avy-styles-alist
See #67.
de-bruijn
to the defcustom of avy-styles-alist
Add See #73.
Respect the current input method for target chars
See #76.
avy-goto-subword-0
shouldn’t offer invisible chars
See #90.
case-fold-search
handling
Better See #87.
Add misc punctuation to subword commands
See #93.
Add padding for wide-width chars (ex. Japanese and Chinese)
See #96.
avy-goto-line
Push mark for numeric line
See #74.
Allow numeric prefix arg
The old behavior remains for ARG 1 or 4. For all other ARG, simply go to that line. See #86.
visual-line-mode
Work for See #91.
Don’t error on end of buffer
See #91.
avy-background
Obey See #94.
Fix for narrowed regions
avy-action
Don’t modify See #124.
avy-goto-char-timer
May read as many chars as you want
See #97.
Highlight matches while reading chars
See #98.
avy-all-windows
Highlight depending on See #104.
org-mode
Make faster for See #100.
Add case fold search
See #128.
avy-copy-region
Keep the same selectors for the second pass
Copy/move to initial window
See #131.
Search only in the visible region
Fix jumping to the last char of a folded Org outline
See #108.
org-indent-mode
and visual-line-mode
Fix for both See #110.
Beep when there are no matches
See #111.
Simplify overlay code
Most functions reuse avy--overlay
now.
Fix de-bruijn “no catch for tag”
See #116.
point-max
Fix overlays at See #125.
case-fold-search
condition
Improve See #126.
visual-line-mode
and bolp
Don’t shorten selector string for See #129.
goto-address-mode
Fix interaction with New Features
avy-keys
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 ▲, ▼, avy-key-to-char-alist
.
See #77.
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
screen):
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.
See #78.
avy-pop-mark
New command Goes back to the last location of push-mark
:
- has its own history,
- handles multiple frames.
avy-goto-line-above
and avy-goto-line-below
New commands See #106.
avy-line-insert-style
New defcustom Allows to modify the behavior of avy-copy-line
, avy-move-line
, and avy-copy-region
.
See #117.
avy-all-windows-alt
New defcustom Allows to customize the behavior of universal-argument
modifying
avy-all-windows
.
See #118.
avy-subword-extra-word-chars
New defcustom Allows to customize the behavior of avy-goto-subword-0
and
avy-goto-subword-1
by adding extra chars that should match as word
constituents.
See #116.
0.5.0
Fixes
el:avy-action-copy
Save selected window and frame. See #133.
Copy line for el:avy-goto-line. See #191.
el:avy-read
Make C-g
and 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.
Quit on 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.
el:avy-goto-word-1
Works for “^A”-“^Z”, see #167.
el:avy-goto-subword-0
Add char at window start if empty, See #145.
Add option to limit scope. See #235.
el:avy-goto-subword-1
Check el:char-after. See #163.
el:avy-isearch
Escape regex. See #147.
el:avy-goto-char-2
Translate RET
to C-j
. See #153.
el:avy-action-goto
Add el:raise-frame.
el:avy-goto-char-timer
Allow C-h
to delete. See #193.
Obey el:avy-background for the initial search. See #259.
el:avy-goto-line
Fix for empty buffer. See #238.
Add ability to display candidates from bottom to top. See #236.
el:avy–overlay-at-full
More consistent face order. See #270.
documentation
See #223, #226, #218, #245, #262.
New Features
API
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.
el:avy-jump
New API function to replace el:avy–generic-jump. See #265, #267.
el:avy-process
New API function to replace el:avy–process. See #266.
New actions
el:avy-action-kill-stay
Kill a word with el:avy-goto-char without moving there.
Bound to X
.
el:avy-action-ispell
Auto-correct word at point. See #142, #160, #161.
Bound to i
.
el:avy-action-yank
Yank sexp starting at selected point at the current point. See #183.
Bound to y
.
el:avy-action-teleport
Kill sexp starting on selected point and yank into the current location. See #207.
Bound to t
.
el:avy-action-zap-to-char
Kill from point up to selected point. See #234.
Bound to z
.
New defcustoms
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.
el:avy-orders-alist
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.
el:avy-indent-line-overlay
When non-nil el:avy-goto-line will display the line overlay next to the first non-whitespace character of each line. See #244.
el:avy-single-candidate-jump
When non-nil, and there is only one candidate, jump there. See #250.
el:avy-del-last-char-by
Customize keys which delete the last read char. The defaults are C-h
and DEL
. See #251.
el:avy-goto-word-0-regexp
Customize el:avy-goto-word-0. See #136, #156.
el:avy-pre-action
Function to all before el:avy-action. See #260.
el:avy-enter-times-out
When non-nil (the default), RET
exists el:avy-goto-char-timer early.
When nil, it matches a newline.
See #220, #225.
New commands
el:avy-move-region
Select two lines and move the text between them above the current line. See #75, #187, #188.
el:avy-goto-end-of-line
Call el:avy-goto-line and move to the end of the line. See #240.
el:avy-linum-mode
Minor mode that uses avy hints for el:linum-mode.
el:avy-resume
Holds last command avy command after user input. This is a quick way to bring back the same markers after a jump. See #157, #165.
el:avy-next
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.
See #148:
- el:avy-goto-char-2-above
- el:avy-goto-char-2-below
See #151:
- el:avy-goto-word-1-above
- el:avy-goto-word-1-below
See #156:
- el:avy-goto-symbol-1-above
- el:avy-goto-symbol-1-below
See #186:
- el:avy-goto-word-0-below
- el:avy-goto-word-0-above
kill and save region functionality
New avy-enabled commands:
- el:avy-kill-whole-line
- el:avy-kill-region
- el:avy-kill-ring-save-whole-line
- el:avy-kill-ring-save-region
See #158.
org-mode functionality
New avy-enabled commands:
- el:avy-org-refile-as-child
- el:avy-org-goto-heading-timer
el:avy-goto-char-timer
Show the number of matches so far in the prompt. See #253.
el:avy-read
Ignore mistyping when no candidates are available. See #256.
When the overlays are shown, press ?
to get dispatch help.