I met my wife because she was stuck in VI. I was a unix sysadmin in the early 90s, and she was a grad student. She came to me for help (like most of the 1st years did) because she couldn't get out of vi. However, to be fair, this was not her fault per-say. She actually knew how to use vi, but just couldn't find the ESC key.<p>Does anybody remember the DEC keyboards where there <i>was</i> no traditional ESC key, but it was F11? (<a href="http://www.cosam.org/images/vt220/keyboard.jpg" rel="nofollow">http://www.cosam.org/images/vt220/keyboard.jpg</a>). Yeah, we used DECstations in the grad labs, and whenever a new grad student asked me a question in the 1st week, I'd answer "F11", and 90% of the time I was right.
(Attribution is questionable, but as a geezer I feel the need to make sure the younger generations at least are familiar with this:)<p>ed is the standard text editor<p>Let's look at a typical novice's session with the mighty ed:<p><pre><code> golem> ed
?
help
?
?
?
quit
?
exit
?
bye
?
hello?
?
eat flaming death
?
^C
?
^C
?
^D
?
---
Note the consistent user interface and error reportage. Ed is
generous enough to flag errors, yet prudent enough not to overwhelm
the novice with verbosity.
</code></pre>
(As a geezer, I also have to say I really am impressed with ed in some ways, and you should never be afraid to try it when you have a specific and known edit you want to do.)
I spent almost 10 years doing IT for a company whose backend was based entirely on as/400. If you've ever used a system like that, I'm sure you know where this is going...<p>The console's that the front-desk or clerical users used every day had a <i>steep</i> learning curve. It was something that you would definitely not be able to walk up to and just intuit.<p><i>However</i>, once you figured it out, there is <i>never</i> going to be a faster UI that you are ever going to experience in your life until we figure out direct BCI stuff.<p>It was funny watching the new people come on board and insist that we should change the UI to something with a mouse (probably web based). They had no idea that more immediately intuitive was actually a step backwards.<p>My point is that just because something has a steep learning curve, that doesn't <i>necessarily</i> mean that it's a bad design.
The most viewed question is even more relatable: <a href="https://stackoverflow.com/questions/927358/how-to-undo-last-commits-in-git" rel="nofollow">https://stackoverflow.com/questions/927358/how-to-undo-last-...</a><p>You can get the top viewed questions here: <a href="http://data.stackexchange.com/stackoverflow/query/53109/questions-with-most-views" rel="nofollow">http://data.stackexchange.com/stackoverflow/query/53109/ques...</a>
I saw the bumper sticker ":w saves" and thought, to myself I wonder how many people "get" that.<p>I suggested a long time ago that vi/vim bind ^C to exit. It currently is equivalent to 'esc' (it puts you into command mode if you aren't there and types the message "type :quit<Enter> to exit Vim". I'd much rather it popped up 'exit vim? y/n?' and the next key would determine if you exited or not.
Hah. Back in the old days, when I didn't have a second computer to look up help online, I just powered my Linux PC off if I accidentally got trapped in vim. Later on, I'd just close my PuTTy session.<p>Then I finally took a little bit of time to learn vim.
When I told my thesis advisor (in about 2001) that I was looking into backend web development as a career, he gave me a post-it note with the following content:<p><pre><code> chmod 0644
[Esc] :wq
</code></pre>
Best advice I've ever gotten.
Reading title I thought that it will be about helping people switch to a different text editor. One that is not an improved version of a text editor from 70s.<p>I am a vim user, but I want to switch to something different. I mainly use it now, because of inertia. Don't bother with replying how editing model of vim is still relevant today. Or how one should think about vim as a language - a verb and a motion. I know all those arguments and I even agree with them to some extent. However I would argue that vim's interface is quite taxing for the mind - at least for my mind. Editing may be efficient, but I read more code then I edit.
I'm having a go at using Vim full time after years of dabbling.<p>I attribute the weirdness of Vim to it being like learning a completely different actual language similar to learning French if you're an English speaker.<p>With an editor you do almost everything through muscle memory, and so like speaking a language it's subconscious.<p>Unless you've got a French English dictionary or Google Translate you've got very little hope.<p>The problem is most GUI editor users assume that it's just an editor like they're used too.<p>The only way to learn it, is like a language by speaking it all the time and changing the pathways in your brain.<p>I want to get round to writing a translators guide for Sublime Text users on the basis that's probably the most similar GUI based editor to Vim. Then most people can translate their own editor to what ST does and from there figure out Vim.
> It looks like developers in Ukraine, Turkey and Indonesia are getting stuck in Vim quite a bit: it makes up a larger portion of their Vim questions than in any other country. In contrast, in China, Korea and Japan the fraction going to this question is one-tenth as much. That might indicate that when developers in these countries enter Vim, they usually meant to do so, and they know how to get out of it.<p>I'd say no. I work in Japan and here everybody uses a Japanese equivalent of StackOverflow. This conclusion is so wrong.
I'm going to be perfectly honest, I got trapped like this in vi, decided that anything so complicated to exit out of wasn't for me and stuck with nano ever since.
> It looks like developers in Ukraine, Turkey and Indonesia are getting stuck in Vim quite a bit: it makes up a larger portion of their Vim questions than in any other country. In contrast, in China, Korea and Japan the fraction going to this question is a tenth smaller.<p>From my experience, people at least from Korea are very likely to develop on windows, even when targeting linux or even embedded linux.<p>You can tell from the msdos line endings and comments in Korean that are in a weird multi byte encoding that I could not make vim display correctly. I think they use some sort of sftp synchronization tool like WinSCP when you edit a file remotely.<p>I read that Windows is really deeply rooted in their IT culture, so much so that banking sites are required to use a special encryption scheme implemented in ActiveX. I can see why that would discourage people to use a different OS for their daily needs, let alone convince corporate IT to support dual boot.
> It looks like developers in Ukraine, Turkey and Indonesia are getting stuck in Vim quite a bit: it makes up a larger portion of their Vim questions than in any other country. In contrast, in China, Korea and Japan the fraction going to this question is one-tenth as much. That might indicate that when developers in these countries enter Vim, they usually meant to do so, and they know how to get out of it.<p>More likely it means they are running Windows...
That's funny because I feel that exiting vim is easy. On the other hand, exiting from nano is a nightmare and makes no sense to me - To make matters worse, it's difficult to find info online because it's hard to explain nano's confusing interface with keywords. I hate how git made nano the default editor on Ubuntu. Every time I install git, I have to remember to change the configs to use vim as the default.
What about people who get stuck in Emacs and are unable to exit?<p>They end up using Emacs lisp to create all other operations that they ever need on the computer. Emacs becomes their only environment.
Am I the only person who clicked on this link hoping it would provide guidance and help on how to switch to a different text editor after being "poisoned" by vi for so long?<p>Whenever I write code (or anything else) in another editor I still always have to carefully check diffs to confirm I don't have any vi control mode characters interspersed with whatever I was writing.<p>But I still can't quit using vi for everything else or my productivity goes into the toilet.<p>vi why can't I quit you?
The last graph shows, of people who get stuck in vim what language they use the most. This means this could just be a graph of the most used programming languages. eg if there is a uniform 10% probability that <i>anyone</i> will get stuck in vim. I would find it interesting to see a graph that show what percent of each language's users get stuck in vim.
Assuming it takes an average of 1 minute for someone to look up the answer and quit Vim, the readers of this question alone spent a total of <i>2 years</i> looking up how to quit Vim. Whether or not it was a good design choice, it goes to show how much of people's time and energy is at stake when you make software at enormous scale.
It's interesting to observe that I am the only person to have spoken up about alarm bells going off when it got to the part about Ukraine being the place that visits the Stack Overflow WWW page the most. No-one in this discussion, or in other discussions that I have read, has yet said:<p>> <i>Hold on a minute! This is a WWW page in English, and yet you have the Ukraine, Turkey, Indonesia, and Pakistan as the top four countries by visitor? And the highest placed majority anglophone country is Canada, in sixteenth place?
Hold your horses! Something is not right, here.</i><p>I have seen this pattern myself, on one of my WWW servers. Ukraine and the Russian Federation are second and third on the list ... for HTTP. For HTTPS. however, it is a very different story.<p>On the basis of my own experience, I question the accuracy of the statistics posted, and the accuracy of the conclusions based upon those statistics.
UX, the early days.<p>I once typed "EDIT" to Interlisp when in the wrong mode, and Warren Teitelman's "Do What I mean" system printed "=EXIT" and exited the program without saving. DWIM was tuned rather closely to Warren's personal typing errors.
I remember getting stuck in emacs as a teenager on my only computer and having to just hold the power button down to get out because I had no way to search the Internet for the exit command. Haven't used emacs since. Good times.
I can still remember sitting at a VT-220 in the college computer lab with my first Unix account (on a MIPS DECstation of all things), running emacs[1], getting stuck, and then sheepishly having to yank the power on the terminal to fix things.<p>[1] Would have been emacs 18.something at the time. Not sure if that predates the built-in tutorial or if I just missed it. I remember running the tutorial not long thereafter on a proper workstation where I felt comfortable I could close the window.
When using a "ZZ" in command mode, I accidentally hit a ctrl-z every now and then. It took me a while to finally figure out that "fg" in the shell will bring the suspended vim session from the background to the foreground, so that I didn't have to kill the process.
Not that it entirely matters, but those country/prog. language stats are useless since they don't normalise to site-wide traffic (or at least they don't seem indicate they do).<p>Anecdotally, would get stuck in Vim having thought that the override command was :!q instead of :q!...
I remember my first dealings with Vim. It was awful. I kept having to hit the X button and reconnect, only to find that nothing saved. I've since switched over to nano and prefer it over any editor in Linux. Easy to use, easy to save. That's how it should be!
Spent a few hours to create a website for it:
<a href="http://exitvi.info/" rel="nofollow">http://exitvi.info/</a><p>Interestingly, I found domains like howtoexitvim were registered immediately after this post showed up on HN.
Why should we encourage exiting?<p>Perhaps the mission is not complete and you should keep the file open until there are zero defects, everything is properly commented and you 100% understand everything and then some.<p>At that point _maybe_ Vim shall let you exit!<p>:)
<i>sighs wistfully</i> I still remember the first day I was able to exit vim without looking it up. It's right up there with that one time I wrote a function that compiled and worked on the first try.<p>Good times.
Long, long ago in my programming infancy, I memorized a three-word ritual that has saved me countless hours over the years. It should be taught to freshmen CS students everywhere: Colon Queue Bang.
And this is what it looks like: [1] :)<p>[1] <a href="https://www.youtube.com/watch?v=zdcPZc21agk" rel="nofollow">https://www.youtube.com/watch?v=zdcPZc21agk</a>
I barely use any Vim, but I'm more confused about there being some hidden complexity in exiting Vim that I'm not aware of.<p>Isn't it just...<p>[Esc] :wq<p>...or...<p>[Esc] :q!<p>...depending if you want to save the current document or not?
the hardest thing is, after their experience in trying to quit vim is then trying to tell them "No, it's actually quite an awesome editor....no it's not a piece of #$%!%.....no truly, it's good! .... oh you're back in your nice safe IDE, ok ok, we'll talk later" :)
I'm somewhat amazed but mostly amused that the Vim developers care so little about user experience that they continue to ignore that people have trouble with exiting their tool and refuse to adapt to a more expected convention for exiting it.
Ugh, these types of editors drive me batty. Why can't it just be easy to quit? Why, why?! If I absolutely must use an editor in the terminal I use nano.