What does HackerNews think of avy?

Jump to things in Emacs tree-style

Language: Emacs Lisp

For my emacs friends, here's a wonderful package that provides the same functionality: https://github.com/abo-abo/avy

And, if you're interested in some historical context for this "type characters and jump to point" functionality, the Canon Cat: https://youtu.be/o_TlE_U_X3c

https://github.com/abo-abo/avy

googled for `"emacs" "avy" "package"` was the 1st result. ;)

This is like Avy (or ace-jump-mode) in Emacs: https://github.com/abo-abo/avy
Can you learn to navigate by searching for the text you want to get to?[0] Or does your editor provide any facilities for jumping directly to the desired location?[1]

[0]: Beginner's Emacs tip. Should apply in other editors.

[1]: Example for Emacs: https://github.com/abo-abo/avy

Hi HN! I started building Scoot as an experiment, to see if it was possible to meaningfully reduce my reliance on a physical mouse and trackpad during day-to-day usage of my Mac.

Quick backstory: I was experiencing pain in my ulnar nerve, which was definitely exacerbated by using a mouse. I was making a lot of changes to get that under control, but was curious if there was also a software-based solution that I could throw into the mix. As it happens, I had recently started using the excellent avy [0] Emacs package, and wondered if some of the ideas in avy could be brought to the operating system level.

(Quick sidenote: some physical keyboards, e.g. those running the QMK firmware, support mouse emulation, which allows you to move your mouse by pressing keys. I like this feature, but it's not as efficient as what I had in mind.)

I threw together a prototype, to see what was possible. The initial version subdivided the screen into a grid of equally-sized cells, and assigned each cell a unique character sequence. Type the character sequence, and your mouse cursor moves right to that location. (You can also move the mouse cursor up, down, left, and right, using similar keyboard shortcuts for text editing. The app also lets you click and drag with your keyboard.)

Over the holiday break, I added a new navigation mode that leverages the Mac OS accessibility APIs (like a screenreader) to find relevant UI elements on the screen (buttons, hyperlinks, etc.). Each element is assigned a unique character sequence, just like the grid-based navigation mode.

Now, with element-based navigation, Scoot feels much more useful, and I thought it would be worth sharing more broadly in case anyone else finds it useful. (Note that Scoot is Mac only, relying heavily on Apple-provided frameworks.)

Usage details (and a more detailed description) are available in the README. [1]

Feedback is much appreciated! (And the app is open source, with a lot of missing features and bugs to squash. All contributions are welcome.)

[0]: https://github.com/abo-abo/avy [1]: https://github.com/mjrusso/scoot

Looks like an implementation of avy from emacs, very cool that they included this in the base!

https://github.com/abo-abo/avy

I use vim style bindings but agree that vimmers tend to exaggerate about the benefits. I think it works fine and so does a mouse and it's a small impact in the grand scheme.

However, with regards to your example, things like easy motion/avy solve this exact problem, I think no slower than a mouse. You basically punch in one, two, or more characters at the place you want to jump (depending which package/command you call), and then every match on the screen is highlighted and replaced with a different letter. Then you press that letter and jump there.

Not arguing that's it's much better, just that's approximately the same. Check it out: https://github.com/abo-abo/avy.

https://github.com/abo-abo/avy

AFAICT it's a superset of ace-jump, with some better thought out commands and better ways to call them.

I've switched from ace-jump to avy with De Bruijn hints; it shows all the hints at once rather than in sequence, even if the hints overlap with one another.

The downside is that, sometimes, the hints are longer, but I've found it faster to know right away to type "wxyz" than to receive "w", "x", then "y" one at a time.

https://github.com/abo-abo/avy

Links to some of the tools used

clojure and clojurescript

https://github.com/clojure-emacs/clj-refactor.el (refactoring)

https://github.com/clojure-emacs/cider (IDE)

https://github.com/bhauman/lein-figwheel (code reloading)

emacs

https://github.com/magit/magit (the interface to Git)

https://github.com/abo-abo/avy (jumping around)

https://github.com/magnars/expand-region.el (marking stuff)

https://github.com/magnars/multiple-cursors.el (placing cursors at similar stuff and editing all at once)