A while ago I wrote about abo-abo's application of Hydra to switching windows. It was an idea apparently inspired by Sacha Chua's use of his def-rep-command to switch windows but went further to handle many chores involving windows and buffers. I had also recently written about John Kitchin's use of Helm to do the same sort of thing, and remarked that I really liked both methods but couldn't make up my mind as to which to implement.
Abo-abo's method seemed easier to implement so I decided to try it on an experimental basis. If I didn't like it, I could always try Kitchin's method instead. My version is almost the same as abo-abo's except I use
y for vertical and horizontal splits and I added
I've been using it for a couple of weeks and really like it. It definitely gives Emacs a further Lisp Machine feel. The Lisp Machine had a SELECT key that was used to initiate window operations and
hydra-window has the same feel. It's really convenient how I can perform several operations in a row with one hydra invocation. For example, I can switch to another window, load an existing buffer or bookmarked file and switch back to the original window almost instantaneously.
I find that I now use bookmarks all the time whereas before I seldom did. It's so easy: invoke
hydra-window, press 【m】, and then one other letter to bring up the file. A lot of my work flow involves the same set of files so this really speeds things up. It's faster, even, than just keeping the files open and switching to them with
ido. I made this work better by stealing another idea from abo-abo and upgrading to bookmark+ and arranging to have distinct starting letters (or in some case 2 letters) for the bookmark names. That, with
headlong-bookmark-jump means I can select a file with a single letter or two. I also added book marks to call
Ibuffer and open Irreal in my browser.
It's startling what a different feel using this set up gives my Emacs workflow. Things just seem faster and smoother. The only problem I haven't resolved is how to invoke
hydra-window. Currently【F1】, 【F10】, and【y y】 are all bound to
hydra-window. I'm trying to determine what the best sequence to simulate the
SELECT key is. I like【F1】 but
dired+ steals it. I could probably remap that after
dired+ is loaded but I'm finding 【F10】 more natural. I'll probably keep experimenting with different bindings for a while.
A final benefit is completely unexpected. For some reason, I have stopped fretting so much over open buffers.