* 0.3.0 ** Fixes *** Candidate window reversal See [[https://github.com/abo-abo/avy/issues/27][#27]]. *** Jumping to newlines with =at-full= style See [[https://github.com/abo-abo/avy/issues/5][#5]]. *** Stop =at-full= style from shifting text sometimes See [[https://github.com/abo-abo/avy/issues/5][#5]]. *** Fix =at-full= interaction with tabs When at a tab, visualize it using =tab-width= spaces. See [[https://github.com/abo-abo/avy/issues/43][#43]]. *** Fix overlay issue when the same buffer is in two windows See [[https://github.com/abo-abo/avy/issues/47][#47]] and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20607. *** Quote punctuation chars See [[https://github.com/abo-abo/avy/issues/63][#63]]. *** Update screenshot for =avy-goto-char= in README.md Use ~C-:~ as the new suggested binding instead of the pi char. See [[https://github.com/abo-abo/avy/issues/64][#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 [[https://github.com/abo-abo/avy/issues/29][#29]]. *** =avy-goto-line= now works with all kinds of overlay styles Any of the following do something different now: #+begin_src elisp (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))) #+end_src See [[https://github.com/abo-abo/ace-link/issues/17][#17]]. *** New defcustom =avy-case-fold-search= 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: #+begin_src elisp (setq avy-case-fold-search nil) #+end_src See [[https://github.com/abo-abo/avy/issues/34][#34]]. *** New command =avy-goto-word-or-subword-1= Enter one char, and select a visible word or subword that starts with it, depending on =subword-mode=. Move the point there. See [[https://github.com/abo-abo/avy/issues/33][#33]]. *** =avy-move-line= should remove empty line after original one is moved See [[https://github.com/abo-abo/avy/issues/40][#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: #+begin_src elisp (defun avy-goto-lp () (interactive) (avy-goto-char ?\()) #+end_src This command only goes to the "(" character. This is actually very similar to [[http://oremacs.com/lispy/#lispy-ace-paren][=lispy-ace-paren=]], except the implementation is only one line. See [[https://github.com/abo-abo/avy/issues/44][#44]]. *** (almost) all defcustoms are explained on the wiki See [[https://github.com/abo-abo/avy/wiki/defcustom][the defcustom wiki page]]. *** 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: #+begin_src elisp (setq avy-all-windows nil) #+end_src To make it work on all frames, use: #+begin_src elisp (setq avy-all-windows 'all-frames) #+end_src *** New command =avy-goto-char-in-line= This is =avy-goto-char= reduced only to the current line. Few candidates means very short decision chars path. See [[https://github.com/abo-abo/avy/issues/49][#49]]. *** New overlay style =de-bruijn= How to use it: #+begin_src elisp (setq avy-style 'de-bruijn) #+end_src 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. See [[https://github.com/abo-abo/avy/issues/51][#51]] and [[https://github.com/abo-abo/avy/issues/5][#5]]. *** New defcustom =avy-ignored-modes= 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: #+begin_src elisp (setq avy-ignored-modes '(image-mode doc-view-mode pdf-view-mode)) #+end_src See [[https://github.com/abo-abo/avy/issues/57][#57]]. *** New tutorial on writing custom commands See the [[https://github.com/abo-abo/avy/wiki/custom-commands][the custom-commands wiki page]] and [[https://github.com/abo-abo/avy/issues/55][#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 [[https://github.com/abo-abo/avy/issues/53][#53]]. *** New variable =avy-translate-char-function= You can use this, for example, to interpret one character as another in =avy-keys=. Example: #+begin_src elisp (setq avy-translate-char-function (lambda (c) (if (= c 32) ?a c))) #+end_src 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 [[https://github.com/abo-abo/avy/issues/61][#61]]. *** Switch the default style from =pre= to =at-full= 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: #+begin_src elisp (setq avy-style 'pre) #+end_src * 0.4.0 ** Fixes *** =avy-goto-char-timer= obeys =avy-styles-alist= See [[https://github.com/abo-abo/avy/issues/67][#67]]. *** Add =de-bruijn= to the defcustom of =avy-styles-alist= See [[https://github.com/abo-abo/avy/issues/73][#73]]. *** Respect the current input method for target chars See [[https://github.com/abo-abo/avy/issues/76][#76]]. *** =avy-goto-subword-0= shouldn't offer invisible chars See [[https://github.com/abo-abo/avy/issues/90][#90]]. *** Better =case-fold-search= handling See [[https://github.com/abo-abo/avy/issues/87][#87]]. *** Add misc punctuation to subword commands See [[https://github.com/abo-abo/avy/issues/93][#93]]. *** Add padding for wide-width chars (ex. Japanese and Chinese) See [[https://github.com/abo-abo/avy/issues/96][#96]]. *** =avy-goto-line= **** Push mark for numeric line See [[https://github.com/abo-abo/avy/issues/74][#74]]. **** Allow numeric prefix arg The old behavior remains for ARG 1 or 4. For all other ARG, simply go to that line. See [[https://github.com/abo-abo/avy/issues/86][#86]]. **** Work for =visual-line-mode= See [[https://github.com/abo-abo/avy/issues/91][#91]]. **** Don't error on end of buffer See [[https://github.com/abo-abo/avy/issues/91][#91]]. **** Obey =avy-background= See [[https://github.com/abo-abo/avy/issues/94][#94]]. **** Fix for narrowed regions See [[https://github.com/abo-abo/avy/issues/122][#122]], [[https://github.com/abo-abo/avy/issues/123][#123]]. **** Don't modify =avy-action= See [[https://github.com/abo-abo/avy/issues/124][#124]]. *** =avy-goto-char-timer= **** May read as many chars as you want See [[https://github.com/abo-abo/avy/issues/97][#97]]. **** Highlight matches while reading chars See [[https://github.com/abo-abo/avy/issues/98][#98]]. **** Highlight depending on =avy-all-windows= See [[https://github.com/abo-abo/avy/issues/104][#104]]. **** Make faster for =org-mode= See [[https://github.com/abo-abo/avy/issues/100][#100]]. **** Add case fold search See [[https://github.com/abo-abo/avy/issues/128][#128]]. *** =avy-copy-region= **** Keep the same selectors for the second pass See [[https://github.com/abo-abo/avy/issues/120][#120]], [[https://github.com/abo-abo/avy/issues/121][#121]]. **** Copy/move to initial window See [[https://github.com/abo-abo/avy/issues/131][#131]]. *** Search only in the visible region See [[https://github.com/abo-abo/avy/issues/108][#108]], [[https://github.com/abo-abo/avy/issues/109][#109]]. *** Fix jumping to the last char of a folded Org outline See [[https://github.com/abo-abo/avy/issues/108][#108]]. *** Fix for both =org-indent-mode= and =visual-line-mode= See [[https://github.com/abo-abo/avy/issues/110][#110]]. *** Beep when there are no matches See [[https://github.com/abo-abo/avy/issues/111][#111]]. *** Simplify overlay code Most functions reuse =avy--overlay= now. *** Fix de-bruijn "no catch for tag" See [[https://github.com/abo-abo/avy/issues/116][#116]]. *** Fix overlays at =point-max= See [[https://github.com/abo-abo/avy/issues/125][#125]]. *** Improve =case-fold-search= condition See [[https://github.com/abo-abo/avy/issues/126][#126]]. *** Don't shorten selector string for =visual-line-mode= and =bolp= See [[https://github.com/abo-abo/avy/issues/129][#129]]. *** Fix interaction with =goto-address-mode= ** New Features *** Allow non-printing keys in =avy-keys= Now you can set avy-keys also to the arrow keys and page up/down, e.g. #+begin_src elisp (setq avy-keys '(left right up down prior next)) #+end_src and those will be displayed as ▲, ▼, ◀, ▶, △, ▽ in the overlays. The display is controlled by the variable =avy-key-to-char-alist=. See [[https://github.com/abo-abo/avy/issues/77][#77]]. *** Allow to switch action midway from goto to kill/mark/copy For example, suppose you have: #+begin_src elisp (global-set-key (kbd "M-t") 'avy-goto-word-1) #+end_src - 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 [[https://github.com/abo-abo/avy/issues/78][#78]]. *** New command =avy-pop-mark= Goes back to the last location of =push-mark=: - has its own history, - handles multiple frames. See [[https://github.com/abo-abo/avy/issues/81][#81]] [[https://github.com/abo-abo/avy/issues/88][#88]] [[https://github.com/abo-abo/avy/issues/69][#69]]. *** New commands =avy-goto-line-above= and =avy-goto-line-below= See [[https://github.com/abo-abo/avy/issues/106][#106]]. *** New defcustom =avy-line-insert-style= Allows to modify the behavior of =avy-copy-line=, =avy-move-line=, and =avy-copy-region=. See [[https://github.com/abo-abo/avy/issues/117][#117]]. *** New defcustom =avy-all-windows-alt= Allows to customize the behavior of =universal-argument= modifying =avy-all-windows=. See [[https://github.com/abo-abo/avy/issues/118][#118]]. *** New defcustom =avy-subword-extra-word-chars= 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 [[https://github.com/abo-abo/avy/issues/116][#116]]. * 0.5.0 ** Fixes *** el:avy-action-copy Save selected window and frame. See [[https://github.com/abo-abo/avy/issues/133][#133]]. Copy line for el:avy-goto-line. See [[https://github.com/abo-abo/avy/issues/191][#191]]. *** el:avy-read Make ~C-g~ and ~ESC~ fail silently when reading char. See [[https://github.com/abo-abo/avy/issues/137][#137]]. Display error message on mouse clicks. See [[https://github.com/abo-abo/avy/issues/226][#226]]. Update el:avy-current-path before returning. See [[https://github.com/abo-abo/avy/issues/226][#226]]. Quit on ~ESC~. See [[https://github.com/abo-abo/avy/issues/249][#249]]. Fix for el:org-toggle-link-display. See [[https://github.com/abo-abo/avy/issues/261][#261]]. Fix for el:buffer-invisibility-spec being t. See [[https://github.com/abo-abo/avy/issues/264][#264]]. Allow "invisible" 'org-link. See [[https://github.com/abo-abo/avy/issues/269][#269]]. *** el:avy-goto-word-1 Works for "^A"-"^Z", see [[https://github.com/abo-abo/avy/issues/167][#167]]. *** el:avy-goto-subword-0 Add char at window start if empty, See [[https://github.com/abo-abo/avy/issues/145][#145]]. Add option to limit scope. See [[https://github.com/abo-abo/avy/issues/235][#235]]. *** el:avy-goto-subword-1 Check el:char-after. See [[https://github.com/abo-abo/avy/issues/163][#163]]. *** el:avy-isearch Escape regex. See [[https://github.com/abo-abo/avy/issues/147][#147]]. *** el:avy-goto-char-2 Translate ~RET~ to ~C-j~. See [[https://github.com/abo-abo/avy/issues/153][#153]]. *** el:avy-action-goto Add el:raise-frame. *** el:avy-goto-char-timer Allow ~C-h~ to delete. See [[https://github.com/abo-abo/avy/issues/193][#193]]. Obey el:avy-background for the initial search. See [[https://github.com/abo-abo/avy/issues/259][#259]]. *** el:avy-goto-line Fix for empty buffer. See [[https://github.com/abo-abo/avy/issues/238][#238]]. Add ability to display candidates from bottom to top. See [[https://github.com/abo-abo/avy/issues/236][#236]]. *** el:avy--overlay-at-full More consistent face order. See [[https://github.com/abo-abo/avy/issues/270][#270]]. *** documentation See [[https://github.com/abo-abo/avy/issues/223][#223]], [[https://github.com/abo-abo/avy/issues/226][#226]], [[https://github.com/abo-abo/avy/issues/218][#218]], [[https://github.com/abo-abo/avy/issues/245][#245]], [[https://github.com/abo-abo/avy/issues/262][#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 [[https://github.com/abo-abo/avy/issues/265][#265]], [[https://github.com/abo-abo/avy/issues/267][#267]]. **** el:avy-process New API function to replace el:avy--process. See [[https://github.com/abo-abo/avy/issues/266][#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 [[https://github.com/abo-abo/avy/issues/142][#142]], [[https://github.com/abo-abo/avy/issues/160][#160]], [[https://github.com/abo-abo/avy/issues/161][#161]]. Bound to ~i~. **** el:avy-action-yank Yank sexp starting at selected point at the current point. See [[https://github.com/abo-abo/avy/issues/183][#183]]. Bound to ~y~. **** el:avy-action-teleport Kill sexp starting on selected point and yank into the current location. See [[https://github.com/abo-abo/avy/issues/207][#207]]. Bound to ~t~. **** el:avy-action-zap-to-char Kill from point up to selected point. See [[https://github.com/abo-abo/avy/issues/234][#234]]. Bound to ~z~. *** New defcustoms **** New el:avy-style setting: 'words Use this setting: #+begin_src elisp (setq avy-style 'words) #+end_src 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. See [[https://github.com/abo-abo/avy/issues/210][#210]], [[https://github.com/abo-abo/avy/issues/219][#219]]. **** 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 [[https://github.com/abo-abo/avy/issues/242][#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 [[https://github.com/abo-abo/avy/issues/244][#244]]. **** el:avy-single-candidate-jump When non-nil, and there is only one candidate, jump there. See [[https://github.com/abo-abo/avy/issues/250][#250]]. **** el:avy-del-last-char-by Customize keys which delete the last read char. The defaults are ~C-h~ and ~DEL~. See [[https://github.com/abo-abo/avy/issues/251][#251]]. **** el:avy-goto-word-0-regexp Customize el:avy-goto-word-0. See [[https://github.com/abo-abo/avy/issues/136][#136]], [[https://github.com/abo-abo/avy/issues/156][#156]]. **** el:avy-pre-action Function to all before el:avy-action. See [[https://github.com/abo-abo/avy/issues/260][#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 [[https://github.com/abo-abo/avy/issues/220][#220]], [[https://github.com/abo-abo/avy/issues/225][#225]]. *** New commands **** el:avy-move-region Select two lines and move the text between them above the current line. See [[https://github.com/abo-abo/avy/issues/75][#75]], [[https://github.com/abo-abo/avy/issues/187][#187]], [[https://github.com/abo-abo/avy/issues/188][#188]]. **** el:avy-goto-end-of-line Call el:avy-goto-line and move to the end of the line. See [[https://github.com/abo-abo/avy/issues/240][#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 [[https://github.com/abo-abo/avy/issues/157][#157]], [[https://github.com/abo-abo/avy/issues/165][#165]]. **** el:avy-next Go to the next candidate after el:avy-read. Example config: #+begin_src elisp (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) #+end_src After e.g. el:avy-goto-char or el:avy-goto-char-timer, use the above hydra to cycle between the last candidates. See [[https://github.com/abo-abo/avy/issues/254][#254]]. **** *-above and *-below variants Command versions restricted to matches before or after the point. See [[https://github.com/abo-abo/avy/issues/148][#148]]: - el:avy-goto-char-2-above - el:avy-goto-char-2-below See [[https://github.com/abo-abo/avy/issues/151][#151]]: - el:avy-goto-word-1-above - el:avy-goto-word-1-below See [[https://github.com/abo-abo/avy/issues/156][#156]]: - el:avy-goto-symbol-1-above - el:avy-goto-symbol-1-below See [[https://github.com/abo-abo/avy/issues/186][#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 [[https://github.com/abo-abo/avy/issues/158][#158]]. **** org-mode functionality New avy-enabled commands: - el:avy-org-refile-as-child - el:avy-org-goto-heading-timer See [[https://github.com/abo-abo/avy/issues/214][#214]], [[https://github.com/abo-abo/avy/issues/258][#258]]. *** el:avy-goto-char-timer Show the number of matches so far in the prompt. See [[https://github.com/abo-abo/avy/issues/253][#253]]. *** el:avy-read Ignore mistyping when no candidates are available. See [[https://github.com/abo-abo/avy/issues/256][#256]]. When the overlays are shown, press ~?~ to get dispatch help.