Fog Creek Software
Discussion Board

Locked in by shortcuts

I've been using emacs a lot lately while working on a Linux project.  After selecting Shift+End for about the 100th time to no avail, I finally finished most of the coding on a Windows box with VS.Net. All the keyboard and mouse shortcuts are so ingrained in me, I just can't make the break.

So my point isn't a rant against Linux or emacs - both are fine for what they are and the people who get to know them.  I don't really want to discuss that.

My point is that keyboard and mouse shortcuts are a usability feature that helps customer lock-in. Before you go "oh, that's obvious" or file this between Britney and Justin in your "things-I-don't-give-a-shit-about" file, think about this for a minute.

I don't think that a lot of developers go out of their way to add little shortcuts and usability features to their products. Think of 5 things that your users do a lot in a application that you've developed, then think -

"How can I make this even easier?"
"How can I give my product just a wee little competitive edge?"

Case in point - VS.Net.  Remember my Shift+End beef above? I got into VS.Net and was deleting some lines. I went to hit Shift+End then Delete. I was working fast and accidently forgot the End, so I ended up just hitting the Shift+Delete buttons.  But it worked! It deletes the whole line. Cool! Just another little "featurette" that's going to lock me in.

<end of sermon>

Friday, November 14, 2003

Shift+Delete is not a shortcut specific to VS.NET.  It is the old fashioned Cut to Clipboard shortcut from way back in the days of Windows 3.1.

Cut = Shift+Delete
Copy = Ctrl+Insert
Paste = Shift+Insert

Even though Microsoft has since changed to using Ctrl+X, Ctrl+C, and Ctrl+V for Cut, Copy, and Paste, they've never stopped supporting the old key bindings.  Microsoft clearly does understand the lock-in value of shortcut keys.  For example, the Ctrl+X, C, V bindings originally came from a word processing package that used to be the market leader before Microsoft Word captured most of their market share and became the defacto document standard.  It's certainly no accident that Microsoft chose to make the shortcut keys for the most frequently used word processing functions the same as those of their competitor.

Matt Latourette
Friday, November 14, 2003

>>For example, the Ctrl+X, C, V bindings originally came from a word processing package

Actuallt, I thought they came from the Macintosh where it has always been Cmd-X, C, V since the days of my 'fat mac'.

Friday, November 14, 2003

I'm still stuck on my "Brief" (a once mighty editor or 90's vintage) bindings, and have never been able to give them up.  Which is the main reason why I've never been able to switch to emacs.

Sad but true.

Friday, November 14, 2003

Wow... Brief!

I once asked a brief user if he thought Windows was crap. His response?

"Is Henry VIII Catholic?"

Insert half smiley here.
Friday, November 14, 2003

>>Shift+Delete is not a shortcut specific to VS.NET.

Actually, it is.  In other Windows apps, if you first highlight the text, then do Shift+Delete, it will cut it to the clipboard. In VS.Net, with the caret anywhere in a line (without having to highlight anything), if you hit Shift+Delete it will delete the whole line.

I thought it was nifty.

So, again, the idea is that if you design your app with a number of little user features that they get used to using all the time, then other apps will be frustrating to use. Thus lock-in.

Friday, November 14, 2003

To have Shift+End in emacs type:
M-x pc-selection-mode
(M-x = hold down Alt and press x, then type the command pc-selection-mode)
From the manual :
and the referenced helppages. There are more tricks as well to get emacs windowsified.

Does have customizable keys ?
I found this if someone wants his/hers emacs keycombinations in VS.

I do not have any Windows machine, so I do not know how it works, but maybe it is helpful for someone.

Fredrik Svensson
Saturday, November 15, 2003

All Emacs UI behaviour is configurable by writing LISP statements, so it shouldn't be hard to give end users the ability to easily select a diferent keybinding setting that matches VS.NET, CodeWarrior, or vi.
If I'm not mistaken, early versions of MS Office had an option just like this, to make the transition from WordPerfect and other competitors easier.

Marcos Rubinelli
Saturday, November 15, 2003

CUA support for emacs... yum, that would be cool... why doesn't emacs come with this already?!

unix editors have this kind of thing backwards. Lest you think this is another anti-unix rant from a dribbling windows imebecile, I should add that that it was the same in dos, and that kept me using the outstandingly appalling EDIT.COM for many more years than should have been the case. Lack of a prevailing standard seems to do this to text editors.

Software should have a low barrier to entry. That is, it should be easy for one to start using it for basic tasks straight away. Then, as you use it more,you find more and more useful things. Eventually, you are hooked. (The new version is $1,500. Thank you.)

By contrast, the unix and dos editors that I heinously mischaracterize in my first paragraph simply present themselves and wait for you to decide that you are going to use them for ever more, and invest the requisite time and effort.

Most people won't bother. It's an oft-trotted-out truism that "most people X", where X is "obviously" stupid. But in this case, they're quite right. You can't expect people to drop everything and start using your program. You might not have to entice them, but _at the very least_ you shouldn't put them off.

And now, the boring anecdote:

I've tried to learn emacs a few times. It's always been painful. I like to learn a new program by actually doing something with it; having to relearn simple things like cut and paste or movement around the document is just a piss-take. Even its map-doc-type-to-settings support is hard to get the hang of, so I'm looking at all my code with tabs at 8, and it thinks .MEL is a text file, and so on. God knows how many people have told me that emacs is great, but I've never managed to get to the stage where I can find out why.

By contrast, I was once told by one person, in an off-hand remark, that Codewright was good... and we had a site license. 15 minutes later I had it installed, I'd told it .MEL is a bit like .C, and that a tab stop is 4 wide, and was programming in it having discovered already about 10 things that made it better than what I'd been using previously.

Needless to say, I still use it.

Insert half smiley here.
Sunday, November 16, 2003

Emacs has a cua package.
Did you not read the FAQ above ?
I guess it is easier to rant/complain ?

Fredrik Svensson
Sunday, November 16, 2003

Yeah, it's easier to rant. That's why I do it.

But I think you mischaracterise my point. (That's cool, it's the first law of online communication :) I said "come with". This means that I shouldn't have to download anything. I shouldn't have to dick about. Yeah, I read the FAQ... it pointed me at another package. *shrug*

Emacs should say, the first time I load it, "Are you a moron?" (or something) and select CUA if I click "Yes". There should be an option somewhere that I can select to get these keys. Or something like that. It should be relatively obvious what to do, without assuming anything from the user except basic knowledge of how the local UI works. (This doesn't help you much with windows emacs, but that's a rant for another day!)

Visual Studio Dot Net does this. Visual Studio Dot Net is pretty average as a programmer's editor -- it doesn't piss me off, but it doesn't make me go 'wow' much. (Though, add Visual Assist and it just might. The VBA scripting looks like it might be excellent too, but it's damnably complicated. Anyway...) This, however, is something it does well. First time you load it, it asks you what keys you want. The selection is poor, but that's not quite my point -- the selection is _there_, and it's easily found. You can probably start using it _straight away_. If you select the wrong set, the relevant config option is easy to find. It has a whole new set of Dot Net-specific keys, and the emulation modes aren't by any means perfect, but you're not obliged to learn all the new keys straight away, and you're certainly not obliged to get deep at all into the inner workings of the editor.

Emacs doesn't come with any simple mechanism like this. Not even any simple mechanism that hides a more complex one underneath. (At least, not that I could find, which is also kind of my point :) There's no way for me to set the keys up without endlesly dicking about with elisp or my _emacs file or reams of config menu items hidden 12 deep in some system that *requires* me to learn about buffers or something even though god damnit I'm not even 100% straight on how it is you move from line to line.

It's at this point that I exhale deeply, and utter the immortal phrase: "for fuck's sake". You see, I don't want to learn how to program emacs. I don't want to learn how to set up this elisp business. I don't want to understand its config files. I don't even know whether emacs is actualy any good, and yet, already I'm expected to make a major time investment and dig deep into it before I can get anything done.

Sorry, can't be arsed. It might be the greatest editor ever, and once I've decided it's good I will for sure want to learn all its extra funky features, but if it doesn't make it easy to transition from another editor then I don't see why I should bother in the first place.

I might be unjustified in this if I were using some crazy, out-of-the-way editor, but this is an editor that uses the standard keyset for text editing applications of the most common desktop OS.

Insert half smiley here.
Sunday, November 16, 2003

You don't understand!

Emacs is OSS software!!!

How dare you ask for it to adapt to your petty needs?

OSS software doesn't need to be compatible to anything.

It's moral superiority of being "free as in freedom" is what wins the users in the long run!

Monday, November 17, 2003

Yes, I can understand some of your ranting. But I have also seen too many Windows people rant about stuff in Linux/Unix that they just do not know anything about. If I were to use VS for 15 min I am sure I could come up with a rant on how hard it is to use and that it is not at all like Linux. Do you think Bill Gates would cry me a river.. Why should the OS people make your world windowsfuzzy ?
Because you pay them ? Because you will help in the future ?
Sidenote: Many are doing just that, facilitate for windows users..
but they do that for their own reasons. Not yours.

I just tried the "GUI" configuration of Emacs. Ok, the GUI is not that good looking but has buttons etc. Hey it is made inside the editor..
Menu: Options -> Customize Emacs -> Top-Level Customization Group
Click on Convenience and then on Pc Select.
Click Toggle and Set for Current Session to try it out.

How many steps must you do in VS to have the editor work like emacs?

The power of emacs is that it is customizable. Very customizable. That creates problem with where to put all the options. And most people in the history of emacs have not been Windows users, so the Windows options may not be top priority.

Well. I mostly use VI. Haha.. another strange editor that will totaly remove any efficiency from a windowsuser.

Take your old rusty 350 Mhz Pentium and install a Linux distribution. Get to know it. It is no use to have a dualboot thing because you will never dualboot for it. Or just continue to use Windows. No one will realy care...

Fredrik Svensson
Monday, November 17, 2003

Johnsson : Open Emacs. In the Help menu select "Emacs Psychiatrist"

Fredrik Svensson
Monday, November 17, 2003

"Emacs is OSS software!!!

How dare you ask for it to adapt to your petty needs?"

Presumably you think someone should do it for you. Sit back. After I make your cup of tea I'll write your code for you as well.

Monday, November 17, 2003

*  Recent Topics

*  Fog Creek Home