Live data from Hacker News

Build muscle memory with your favorite editor

shortcutfoo.com

101–110 of 122 posts

Re: Build muscle memory with your favorite editor

#101

This really didn't work for me. I found needing to parse the command ("Move backward a word") broke the memory that I have built up over 15 years of using Emacs. Instead of naturally moving backwards with a flick of the fingers, I had to concentrate on where each finger was and on the key I was pressing. I think the goal of this is great, but as it stands, I'm not convinced it is going to help. Given it aborted my na…

> Now, take @gruseom's idea of a visual "goal" that you are chasing, and I think this could be intensely valuable.

Yes, they really need to take the words out of the equation. It's just a superfluous modality that gets in between the muscle memory, the goals and the training.

Of course, this method will get you familiar with shortcuts rather quickly (I only tried the Vim ones), but then, so does printing out a cheat sheet, or reading some tutorial and an afternoon of practice. While I do believe ShortcutFoo does manage to teach that more effectively than those methods, that's not where it could really shine.

To become a pro text-editor user, you really need to go beyond that, hence muscle memory, not just "memory". You don't merely need to remember the shortcut for "go one word back" when presented with the written goal "go one word back", no you must intuitively know the shortcut as soon as you identify the goal already on an abstract level.

Even with a simple default editing control like this text box: As I'm typing these words, I'm not thinking of every letter I type, I don't think about whether I need to "move cursor left five times" or "move cursor left one word" or "delete word to the left" etc, I'm thinking about the sentences and ideas I want to put into this post and operate the keyboard to make that happen--and any literal textual description of shortcuts and movement commands would really just get in the way with my thought process.

I haven't seen @gruseom's post yet, so maybe s/he had the same idea but: Something like a phantom cursor that indicates "get the cursor to here" or half-fade a word that you must delete? But that may become too low level once you get more advanced. What you really need is a sort of visual indication that shows a diff between the original text and the goal text, you get to look at it to take it in while a quick countdown timer goes 3-2-1 and from that point it times how quickly you can edit to the target and how many keystrokes it takes you to do it. (could even make it a colour-coded actual diff, then people get to train reading diffs as well :) [something I need to practice myself])

Re: Build muscle memory with your favorite editor

#104

What I found missing in this is _why_ I would want to jump to a matching bracket, or insert a line before. Perhaps the game should be to transform one block of code into something different in as few keystrokes as possible. I would love to see videos of people using commands that are not a part of my current vocabulary.

> Perhaps the game should be to transform one block of code into something different in as few keystrokes as possible.

Related, http://vimgolf.com/ but vim-specific..

Re: Build muscle memory with your favorite editor

#105

Earlier quoted context omitted.

Just to contrast, as somebody that's a novice-to-intermediate vim user, I really like this so far. The action verb model feels like it mirrors how I think when using vim, so at first blush, for me at least, it feels like a good fit. I don't know enough about Emacs to compare there, though.

It may be that muscle memory in editors is created like this: 1. Identify a problem 2. Think what I need to do to fix it 3. Decide what keys I need to press 4. Direct fingers to press keys And that gets shortened eventually to: 1. Identify a problem 2. Direct fingers to press keys If that is the case, then this might be a really good first step towards that process. I would certainly not look to me for that initial f…

That's actually a very good description of my experience learning vim so far.

It starts off being a very conscious set of actions when first learning a new command -- e.g., "I want to change the word under the cursor... cw" -- before becoming something that happens subconsciously as I become more familiar with a set of commands.

Where this site at least appears to work well is that once I started to understand vim commands as verbs and nouns, I started seeing actions as sentences. The drills here seem to reinforce that sentence structure type approach.

I can see it being less useful for somebody that is familiar enough with their editor thatt it's already become a mostly subconscious process. While I'm comfortable using vim for the most part, I'm very far from a high level of proficiency with it.

Re: Build muscle memory with your favorite editor

#106
Wow. Nothing like waking up on Monday morning to find your app at the top of Hacker News. Thanks to whoever posted this :)

This is awesome feedback. It looks like the most requested feature right now is moving from reading words to a more visual representation of what's happening. This is definitely something I've thought about - but didn't want to attempt until I received exactly this type of response. Thanks! I'll definitely move this up as a top priority and hopefully have something implemented soon.

Thanks for everyone else's feedback. I'll carefully read each post and email I've received and respond appropriately.

Someone asked about the tech stack: backbone.js + sinatra + mongodb hosted on heroku (2 dynos). I'll try and get a blog post up with more on this plus possibly a HN postmortem if there is interest.

ps. I'll get eclipse added as well :)

Re: Build muscle memory with your favorite editor

#107

This really didn't work for me. I found needing to parse the command ("Move backward a word") broke the memory that I have built up over 15 years of using Emacs. Instead of naturally moving backwards with a flick of the fingers, I had to concentrate on where each finger was and on the key I was pressing. I think the goal of this is great, but as it stands, I'm not convinced it is going to help. Given it aborted my na…

Further,

I don't want to need muscle memory for editing!

I would take the hard stand that any repetitive keystroke combinations inherently implies inefficiency - ie, an ideal editor should provide enough shortcuts to give your keystroke stream a fairly high entropy content. Maybe we're not there yet but I don't want to develop habits which would stand in the way of such an ideal.

Re: Build muscle memory with your favorite editor

#108
post #99
post #48

Earlier quoted context omitted.

Step 2: undefine the arrow keys.

Or, remap the hjkl of vim, a ridiculous legacy of an obsolete keyboard Bill Joy just happened to be using at the time, to the normal inverted-T of cursor movement: ijkl. Then continue using the "arrowkeys" that are now under your right hand on the home row. You'll then need to move the insert on left side of cursor, which was i, to h, the key on the left side of your index finger. Reach left to insert left. Easy for…

What's so ridiculous about hjkl? I'm actually an emacs user, and I've gone to great lengths to set up hjkl layouts in my editor and browser.

It seems like the perfect setup to me. An inverted T would cause you to reposition a finger every time you wanted to change direction. I do that often enough that it doesn't seem very efficient to me. I had some doubts as to whether jkl; would be a better option, but it really does seem more convenient to have the "down" key below your index finger.

Re: Build muscle memory with your favorite editor

#109
post #39

If you want better shortcut muscle memory, just unplug your mouse for a couple days. Do this once a year or so. You can thank me later.

I'm hoping to get there soon. On linux, I use vim, a keyboard centric window manager and I've recently started using uzbl for my web browsing. Not there yet, but getting there - already I find I don't need to reach for the mouse very often at all!
Post reply on HN