Hacker News new | past | comments | ask | show | jobs | submit login

Imagine you don't know that. Now try to exit vim.



Add in the bonus confusion that you may not have even been trying to run vim, and in fact may not know what it is (hey, everyone's a beginner some time), but have landed there due to a default $EDITOR value.

[EDIT] also, a typical mid-level computer user's tendency to slap "ESC" when panicked. Ha!


Which OS/Linux distribution set default $EDITOR to vim? Personally I've never seen one, and I don't think vim is a sane default value for $EDITOR.


I dunno if it's actually vim or some variation on it, but it is the default on, for example, Arch Linux, although I believe most other distros dropped me into it as well (e.g. git commit / rebase -i).

If there is such a thing as user hostile in the world of CLI tools, then dropping the user unannounced into vi with some open buffer most definitely counts as user hostile.


Don't know about $EDITOR, but if you issue a git commit in Windows, and forget to specify -m, then you end up in vim.


In Jessie, visudo lands you in nano, unless you explicitly set the $EDITOR.


What are your thoughts on $VISUAL?


> you may not have even been trying to run vi

git rebase -i

For example


Ok, so anyone with any terminal experience but no vim experience would press <ctrl>-c.

Then, the program tells them "Type :quit<Enter> to exit Vim"

And if the user is capable of reading, they shouldn't have any problem.

If they don't know about ctrl-c, they shouldn't be using a terminal editor.


Try actually following those instructions. They don't work. There is a step missing, and you may get warnings even if you know to hit escape first.


You don't have to hit escape, ctrl-c puts you in normal mode.


If vim opens and that's the first thing you try, then it'll work, yeah.

But if you've typed anything, this won't quite work. <ctrl> c will take you out of insert mode, but won't offer any prompt. <ctrl> c again will bring up the quit prompt, but that's not intuitive the way doing it the first time is. And if you type the wrong thing after the first <ctrl> c, you'll break back into insert mode and have to take another run at it.

I remember getting stuck in vim because git bash uses it as a default editor. It happened when I forgot to enter a commit message, which meant that I started typing a commit message and thereby lost the useful prompt when I went to quit.

edit: per another thread, this gets far worse if you don't realize the ':' is active and not a prompt to "type: quit". That error sets off a maze that will never show you the prompt again to find your mistake.


E37: No write since last change (add ! to override)


In that case I'd just close the terminal window if I was running the terminal from a GUI session. Does that count?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: