Changelog.org (19834B)
1 * 0.3.0 2 ** Fixes 3 *** Candidate window reversal 4 See [[https://github.com/abo-abo/avy/issues/27][#27]]. 5 6 *** Jumping to newlines with =at-full= style 7 See [[https://github.com/abo-abo/avy/issues/5][#5]]. 8 9 *** Stop =at-full= style from shifting text sometimes 10 See [[https://github.com/abo-abo/avy/issues/5][#5]]. 11 12 *** Fix =at-full= interaction with tabs 13 When at a tab, visualize it using =tab-width= spaces. 14 15 See [[https://github.com/abo-abo/avy/issues/43][#43]]. 16 17 *** Fix overlay issue when the same buffer is in two windows 18 19 See [[https://github.com/abo-abo/avy/issues/47][#47]] and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20607. 20 21 *** Quote punctuation chars 22 23 See [[https://github.com/abo-abo/avy/issues/63][#63]]. 24 25 *** Update screenshot for =avy-goto-char= in README.md 26 Use ~C-:~ as the new suggested binding instead of the pi char. 27 28 See [[https://github.com/abo-abo/avy/issues/64][#64]]. 29 30 ** New Features 31 *** =avy-goto-line= can now break into =goto-line= 32 Just enter a digit and you'll be transferred into =goto-line= prompt 33 with that digit already entered. This means that you can just bind 34 ~M-g g~ to =avy-goto-line= without losing anything. 35 36 See [[https://github.com/abo-abo/avy/issues/29][#29]]. 37 38 *** =avy-goto-line= now works with all kinds of overlay styles 39 Any of the following do something different now: 40 41 #+begin_src elisp 42 (setq avy-styles-alist 43 '((avy-goto-line . post))) 44 (setq avy-styles-alist 45 '((avy-goto-line . at))) 46 (setq avy-styles-alist 47 '((avy-goto-line . at-full))) 48 (setq avy-styles-alist 49 '((avy-goto-line . pre))) 50 #+end_src 51 52 See [[https://github.com/abo-abo/ace-link/issues/17][#17]]. 53 54 *** New defcustom =avy-case-fold-search= 55 Non-nil when searches should ignore case, so e.g. =avy-goto-char= "b" 56 will match both "b" and "B". On by default. Use this to turn off this 57 behavior: 58 59 #+begin_src elisp 60 (setq avy-case-fold-search nil) 61 #+end_src 62 63 See [[https://github.com/abo-abo/avy/issues/34][#34]]. 64 65 *** New command =avy-goto-word-or-subword-1= 66 67 Enter one char, and select a visible word or subword that starts with 68 it, depending on =subword-mode=. Move the point there. 69 70 See [[https://github.com/abo-abo/avy/issues/33][#33]]. 71 72 *** =avy-move-line= should remove empty line after original one is moved 73 74 See [[https://github.com/abo-abo/avy/issues/40][#40]]. 75 76 *** =avy-move-line= now takes a prefix arg 77 Use e.g. ~M-3~ before =avy-move-line= to move 3 lines at once. 78 79 *** Most commands can be used non-interactively 80 Example: 81 #+begin_src elisp 82 (defun avy-goto-lp () 83 (interactive) 84 (avy-goto-char ?\()) 85 #+end_src 86 87 This command only goes to the "(" character. This is actually very 88 similar to [[http://oremacs.com/lispy/#lispy-ace-paren][=lispy-ace-paren=]], except the implementation is only one 89 line. 90 91 See [[https://github.com/abo-abo/avy/issues/44][#44]]. 92 93 *** (almost) all defcustoms are explained on the wiki 94 95 See [[https://github.com/abo-abo/avy/wiki/defcustom][the defcustom wiki page]]. 96 97 *** Allow all operations to work across frames 98 99 You have to customize =avy-all-windows= for this. By default, it's set 100 to work on all windows on the current frame. 101 102 To make it work only on the current window, use: 103 #+begin_src elisp 104 (setq avy-all-windows nil) 105 #+end_src 106 107 To make it work on all frames, use: 108 #+begin_src elisp 109 (setq avy-all-windows 'all-frames) 110 #+end_src 111 112 *** New command =avy-goto-char-in-line= 113 114 This is =avy-goto-char= reduced only to the current line. Few 115 candidates means very short decision chars path. 116 117 See [[https://github.com/abo-abo/avy/issues/49][#49]]. 118 119 *** New overlay style =de-bruijn= 120 121 How to use it: 122 123 #+begin_src elisp 124 (setq avy-style 'de-bruijn) 125 #+end_src 126 127 What it does: when your leading chars are clumped up together, it's 128 impossible to overlay the decision path without shifting the buffer 129 text a bit. For example, with the word "buffer", you =avy-goto-char= "b", and: 130 131 - the path for the first "f" is "aj" 132 - the path for the second "f" is "ak" 133 134 It's not possible to overlay 4 characters over "ff" in "buffer". But 135 to with =de-bruijn= style, which results in the path being "aj" and 136 "jk". It's possible to overlay "ajk" just fine. 137 138 Pros and cons of =de-bruijn= over other styles: 139 140 - a pro is that it's possible to display the full decision path for 141 clumped up chars, which is truncated for other styles 142 - a con is that the decision path is of the same length (e.g. 2 or 3) 143 for all candidates, while with other styles it's possible to have a 144 few candidates with a shorter path. 145 146 See [[https://github.com/abo-abo/avy/issues/51][#51]] and [[https://github.com/abo-abo/avy/issues/5][#5]]. 147 148 *** New defcustom =avy-ignored-modes= 149 150 This is meant for visual modes like =doc-view-mode= or =image-mode= 151 that can have a huge number of chars in a single window. Which results 152 in a huge number of candidates even in other windows. 153 154 Current setting: 155 156 #+begin_src elisp 157 (setq avy-ignored-modes '(image-mode doc-view-mode pdf-view-mode)) 158 #+end_src 159 160 See [[https://github.com/abo-abo/avy/issues/57][#57]]. 161 162 *** New tutorial on writing custom commands 163 164 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]]. 165 166 *** New face setup 167 New variable =avy-lead-faces= will determine the faces used to color 168 the current decision depth you're in. For example, if to select a 169 particular candidate you need to press "abc": 170 171 - "a" will be highlighted with a face that corresponds to depth 3 172 - "b" will be highlighted with a face that corresponds to depth 2 173 - "c" will be highlighted with a face that corresponds to depth 1 174 175 But if another candidate needs "ef": 176 177 - "e" will be highlighted with a face that corresponds to depth 2 178 - "f" will be highlighted with a face that corresponds to depth 1 179 180 See [[https://github.com/abo-abo/avy/issues/53][#53]]. 181 182 *** New variable =avy-translate-char-function= 183 184 You can use this, for example, to interpret one character as another in =avy-keys=. 185 186 Example: 187 #+begin_src elisp 188 (setq avy-translate-char-function 189 (lambda (c) (if (= c 32) ?a c))) 190 #+end_src 191 192 This will translate ~SPC~ (32) into ~a~. So you can press either ~a~ or ~SPC~ to mean "a". 193 194 *** =avy-isearch= works for different styles 195 196 See [[https://github.com/abo-abo/avy/issues/61][#61]]. 197 198 *** Switch the default style from =pre= to =at-full= 199 200 I've come to like =at-full= more than =pre= over time. The difference 201 is that =pre= hides no chars in your buffer, while =at-full= doesn't 202 shift text. 203 204 Use this to restore the previous default behavior: 205 #+begin_src elisp 206 (setq avy-style 'pre) 207 #+end_src 208 * 0.4.0 209 ** Fixes 210 *** =avy-goto-char-timer= obeys =avy-styles-alist= 211 See [[https://github.com/abo-abo/avy/issues/67][#67]]. 212 *** Add =de-bruijn= to the defcustom of =avy-styles-alist= 213 See [[https://github.com/abo-abo/avy/issues/73][#73]]. 214 *** Respect the current input method for target chars 215 See [[https://github.com/abo-abo/avy/issues/76][#76]]. 216 *** =avy-goto-subword-0= shouldn't offer invisible chars 217 See [[https://github.com/abo-abo/avy/issues/90][#90]]. 218 *** Better =case-fold-search= handling 219 See [[https://github.com/abo-abo/avy/issues/87][#87]]. 220 *** Add misc punctuation to subword commands 221 See [[https://github.com/abo-abo/avy/issues/93][#93]]. 222 *** Add padding for wide-width chars (ex. Japanese and Chinese) 223 See [[https://github.com/abo-abo/avy/issues/96][#96]]. 224 *** =avy-goto-line= 225 **** Push mark for numeric line 226 See [[https://github.com/abo-abo/avy/issues/74][#74]]. 227 **** Allow numeric prefix arg 228 The old behavior remains for ARG 1 or 4. For all other ARG, simply go 229 to that line. 230 See [[https://github.com/abo-abo/avy/issues/86][#86]]. 231 **** Work for =visual-line-mode= 232 See [[https://github.com/abo-abo/avy/issues/91][#91]]. 233 **** Don't error on end of buffer 234 See [[https://github.com/abo-abo/avy/issues/91][#91]]. 235 **** Obey =avy-background= 236 See [[https://github.com/abo-abo/avy/issues/94][#94]]. 237 **** Fix for narrowed regions 238 See [[https://github.com/abo-abo/avy/issues/122][#122]], [[https://github.com/abo-abo/avy/issues/123][#123]]. 239 **** Don't modify =avy-action= 240 See [[https://github.com/abo-abo/avy/issues/124][#124]]. 241 *** =avy-goto-char-timer= 242 **** May read as many chars as you want 243 See [[https://github.com/abo-abo/avy/issues/97][#97]]. 244 **** Highlight matches while reading chars 245 See [[https://github.com/abo-abo/avy/issues/98][#98]]. 246 **** Highlight depending on =avy-all-windows= 247 See [[https://github.com/abo-abo/avy/issues/104][#104]]. 248 **** Make faster for =org-mode= 249 See [[https://github.com/abo-abo/avy/issues/100][#100]]. 250 **** Add case fold search 251 See [[https://github.com/abo-abo/avy/issues/128][#128]]. 252 *** =avy-copy-region= 253 **** Keep the same selectors for the second pass 254 See [[https://github.com/abo-abo/avy/issues/120][#120]], [[https://github.com/abo-abo/avy/issues/121][#121]]. 255 **** Copy/move to initial window 256 See [[https://github.com/abo-abo/avy/issues/131][#131]]. 257 *** Search only in the visible region 258 See [[https://github.com/abo-abo/avy/issues/108][#108]], [[https://github.com/abo-abo/avy/issues/109][#109]]. 259 *** Fix jumping to the last char of a folded Org outline 260 See [[https://github.com/abo-abo/avy/issues/108][#108]]. 261 *** Fix for both =org-indent-mode= and =visual-line-mode= 262 See [[https://github.com/abo-abo/avy/issues/110][#110]]. 263 *** Beep when there are no matches 264 See [[https://github.com/abo-abo/avy/issues/111][#111]]. 265 *** Simplify overlay code 266 Most functions reuse =avy--overlay= now. 267 *** Fix de-bruijn "no catch for tag" 268 See [[https://github.com/abo-abo/avy/issues/116][#116]]. 269 *** Fix overlays at =point-max= 270 See [[https://github.com/abo-abo/avy/issues/125][#125]]. 271 *** Improve =case-fold-search= condition 272 See [[https://github.com/abo-abo/avy/issues/126][#126]]. 273 *** Don't shorten selector string for =visual-line-mode= and =bolp= 274 See [[https://github.com/abo-abo/avy/issues/129][#129]]. 275 *** Fix interaction with =goto-address-mode= 276 ** New Features 277 *** Allow non-printing keys in =avy-keys= 278 Now you can set avy-keys also to the arrow keys and page up/down, e.g. 279 280 #+begin_src elisp 281 (setq avy-keys '(left right up down prior next)) 282 #+end_src 283 284 and those will be displayed as ▲, ▼, ◀, ▶, △, ▽ in the overlays. The 285 display is controlled by the variable =avy-key-to-char-alist=. 286 287 See [[https://github.com/abo-abo/avy/issues/77][#77]]. 288 *** Allow to switch action midway from goto to kill/mark/copy 289 For example, suppose you have: 290 291 #+begin_src elisp 292 (global-set-key (kbd "M-t") 'avy-goto-word-1) 293 #+end_src 294 295 - To jump to a certain word starting with "w" (e.g. first one on 296 screen): ~M-t w a~ 297 - To copy the word instead of jumping to it: ~M-t w na~. 298 - To mark the word after jumping to it: ~M-t w ma~. 299 - To kill the word after jumping to it: ~M-t w xa~. 300 301 You can customize =avy-dispatch-alist= to modify these actions. 302 303 See [[https://github.com/abo-abo/avy/issues/78][#78]]. 304 305 *** New command =avy-pop-mark= 306 Goes back to the last location of =push-mark=: 307 308 - has its own history, 309 - handles multiple frames. 310 311 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]]. 312 *** New commands =avy-goto-line-above= and =avy-goto-line-below= 313 See [[https://github.com/abo-abo/avy/issues/106][#106]]. 314 *** New defcustom =avy-line-insert-style= 315 Allows to modify the behavior of =avy-copy-line=, =avy-move-line=, and =avy-copy-region=. 316 See [[https://github.com/abo-abo/avy/issues/117][#117]]. 317 *** New defcustom =avy-all-windows-alt= 318 Allows to customize the behavior of =universal-argument= modifying 319 =avy-all-windows=. 320 See [[https://github.com/abo-abo/avy/issues/118][#118]]. 321 *** New defcustom =avy-subword-extra-word-chars= 322 Allows to customize the behavior of =avy-goto-subword-0= and 323 =avy-goto-subword-1= by adding extra chars that should match as word 324 constituents. 325 See [[https://github.com/abo-abo/avy/issues/116][#116]]. 326 * 0.5.0 327 ** Fixes 328 *** el:avy-action-copy 329 Save selected window and frame. See [[https://github.com/abo-abo/avy/issues/133][#133]]. 330 331 Copy line for el:avy-goto-line. See [[https://github.com/abo-abo/avy/issues/191][#191]]. 332 *** el:avy-read 333 Make ~C-g~ and ~ESC~ fail silently when reading char. See [[https://github.com/abo-abo/avy/issues/137][#137]]. 334 335 Display error message on mouse clicks. See [[https://github.com/abo-abo/avy/issues/226][#226]]. 336 337 Update el:avy-current-path before returning. See [[https://github.com/abo-abo/avy/issues/226][#226]]. 338 339 Quit on ~ESC~. See [[https://github.com/abo-abo/avy/issues/249][#249]]. 340 341 Fix for el:org-toggle-link-display. See [[https://github.com/abo-abo/avy/issues/261][#261]]. 342 343 Fix for el:buffer-invisibility-spec being t. See [[https://github.com/abo-abo/avy/issues/264][#264]]. 344 345 Allow "invisible" 'org-link. See [[https://github.com/abo-abo/avy/issues/269][#269]]. 346 *** el:avy-goto-word-1 347 Works for "^A"-"^Z", see [[https://github.com/abo-abo/avy/issues/167][#167]]. 348 *** el:avy-goto-subword-0 349 Add char at window start if empty, See [[https://github.com/abo-abo/avy/issues/145][#145]]. 350 351 Add option to limit scope. See [[https://github.com/abo-abo/avy/issues/235][#235]]. 352 *** el:avy-goto-subword-1 353 Check el:char-after. See [[https://github.com/abo-abo/avy/issues/163][#163]]. 354 *** el:avy-isearch 355 Escape regex. See [[https://github.com/abo-abo/avy/issues/147][#147]]. 356 *** el:avy-goto-char-2 357 Translate ~RET~ to ~C-j~. See [[https://github.com/abo-abo/avy/issues/153][#153]]. 358 *** el:avy-action-goto 359 Add el:raise-frame. 360 *** el:avy-goto-char-timer 361 Allow ~C-h~ to delete. See [[https://github.com/abo-abo/avy/issues/193][#193]]. 362 363 Obey el:avy-background for the initial search. See [[https://github.com/abo-abo/avy/issues/259][#259]]. 364 *** el:avy-goto-line 365 Fix for empty buffer. See [[https://github.com/abo-abo/avy/issues/238][#238]]. 366 367 Add ability to display candidates from bottom to top. See [[https://github.com/abo-abo/avy/issues/236][#236]]. 368 *** el:avy--overlay-at-full 369 More consistent face order. 370 See [[https://github.com/abo-abo/avy/issues/270][#270]]. 371 *** documentation 372 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]]. 373 374 ** New Features 375 *** API 376 New functions have been added as drop-in replacements of double-dash (private) avy 377 functions that were used in other packages and configs. Please replace the references to 378 the obsolete functions. 379 380 **** el:avy-jump 381 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]]. 382 **** el:avy-process 383 New API function to replace el:avy--process. See [[https://github.com/abo-abo/avy/issues/266][#266]]. 384 385 *** New actions 386 **** el:avy-action-kill-stay 387 Kill a word with el:avy-goto-char without moving there. 388 Bound to ~X~. 389 **** el:avy-action-ispell 390 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]]. 391 Bound to ~i~. 392 **** el:avy-action-yank 393 Yank sexp starting at selected point at the current point. See [[https://github.com/abo-abo/avy/issues/183][#183]]. 394 Bound to ~y~. 395 **** el:avy-action-teleport 396 Kill sexp starting on selected point and yank into the current location. See [[https://github.com/abo-abo/avy/issues/207][#207]]. 397 Bound to ~t~. 398 **** el:avy-action-zap-to-char 399 Kill from point up to selected point. See [[https://github.com/abo-abo/avy/issues/234][#234]]. 400 Bound to ~z~. 401 402 *** New defcustoms 403 **** New el:avy-style setting: 'words 404 Use this setting: 405 #+begin_src elisp 406 (setq avy-style 'words) 407 #+end_src 408 And you'll see overlays like "by", "if", "is", "it", "my" for 2-letter sequences, and 409 "can", "car", "cog" for 3-letter sequences. You might find them easier to type than "hla", 410 "lls" and "jhl". But you will have to adjust your el:avy-dispatch-alist, e.g. to use only 411 upper case characters. 412 413 See [[https://github.com/abo-abo/avy/issues/210][#210]], [[https://github.com/abo-abo/avy/issues/219][#219]]. 414 **** el:avy-orders-alist 415 Use it to customize the order of candidates with relation to point. The default is for 416 el:avy-goto-char to have the shortest overlay for candidates closest to point. 417 See [[https://github.com/abo-abo/avy/issues/242][#242]]. 418 **** el:avy-indent-line-overlay 419 When non-nil el:avy-goto-line will display the line overlay next to the first 420 non-whitespace character of each line. See [[https://github.com/abo-abo/avy/issues/244][#244]]. 421 **** el:avy-single-candidate-jump 422 When non-nil, and there is only one candidate, jump there. See [[https://github.com/abo-abo/avy/issues/250][#250]]. 423 **** el:avy-del-last-char-by 424 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]]. 425 **** el:avy-goto-word-0-regexp 426 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]]. 427 **** el:avy-pre-action 428 Function to all before el:avy-action. See [[https://github.com/abo-abo/avy/issues/260][#260]]. 429 **** el:avy-enter-times-out 430 When non-nil (the default), ~RET~ exists el:avy-goto-char-timer early. 431 When nil, it matches a newline. 432 See [[https://github.com/abo-abo/avy/issues/220][#220]], [[https://github.com/abo-abo/avy/issues/225][#225]]. 433 434 *** New commands 435 **** el:avy-move-region 436 Select two lines and move the text between them above the current line. 437 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]]. 438 **** el:avy-goto-end-of-line 439 Call el:avy-goto-line and move to the end of the line. See [[https://github.com/abo-abo/avy/issues/240][#240]]. 440 441 **** el:avy-linum-mode 442 Minor mode that uses avy hints for el:linum-mode. 443 444 **** el:avy-resume 445 Holds last command avy command after user input. This is a quick way to bring back the 446 same markers after a jump. See [[https://github.com/abo-abo/avy/issues/157][#157]], [[https://github.com/abo-abo/avy/issues/165][#165]]. 447 **** el:avy-next 448 Go to the next candidate after el:avy-read. 449 Example config: 450 451 #+begin_src elisp 452 (defhydra hydra-avy-cycle () 453 ("j" avy-next "next") 454 ("k" avy-prev "prev") 455 ("q" nil "quit")) 456 457 (global-set-key (kbd "C-M-'") 'hydra-avy-cycle/body) 458 #+end_src 459 460 After e.g. el:avy-goto-char or el:avy-goto-char-timer, use the above hydra to cycle 461 between the last candidates. See [[https://github.com/abo-abo/avy/issues/254][#254]]. 462 **** *-above and *-below variants 463 Command versions restricted to matches before or after the point. 464 465 See [[https://github.com/abo-abo/avy/issues/148][#148]]: 466 - el:avy-goto-char-2-above 467 - el:avy-goto-char-2-below 468 469 See [[https://github.com/abo-abo/avy/issues/151][#151]]: 470 - el:avy-goto-word-1-above 471 - el:avy-goto-word-1-below 472 473 See [[https://github.com/abo-abo/avy/issues/156][#156]]: 474 - el:avy-goto-symbol-1-above 475 - el:avy-goto-symbol-1-below 476 477 See [[https://github.com/abo-abo/avy/issues/186][#186]]: 478 - el:avy-goto-word-0-below 479 - el:avy-goto-word-0-above 480 **** kill and save region functionality 481 New avy-enabled commands: 482 - el:avy-kill-whole-line 483 - el:avy-kill-region 484 - el:avy-kill-ring-save-whole-line 485 - el:avy-kill-ring-save-region 486 487 See [[https://github.com/abo-abo/avy/issues/158][#158]]. 488 **** org-mode functionality 489 New avy-enabled commands: 490 - el:avy-org-refile-as-child 491 - el:avy-org-goto-heading-timer 492 See [[https://github.com/abo-abo/avy/issues/214][#214]], [[https://github.com/abo-abo/avy/issues/258][#258]]. 493 *** el:avy-goto-char-timer 494 Show the number of matches so far in the prompt. See [[https://github.com/abo-abo/avy/issues/253][#253]]. 495 *** el:avy-read 496 Ignore mistyping when no candidates are available. See [[https://github.com/abo-abo/avy/issues/256][#256]]. 497 498 When the overlays are shown, press ~?~ to get dispatch help.