Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> The first time you stumble into vi or vim, you are shocked and disgusted that you have to use 'i' to start typing text. Can't remember which of hjkl moves in which direction. And you need to press 'a' if you want to insert after the last character of the line. Since you're already probably used to other editors, and if the arrow keys work in insert mode (they do if the system is configured properly, which is over 90% of the cases), you will stay in insert mode and not go back to normal mode except if absolutely necessary. You'll probably spend 20 minutes with it, and never go back.

All of this, except the 20 minutes part. I'd hate to have to spend that much time with one of these "enlightened" editors. Just let me use my arrow keys, please and thank you.



  > All of this, except the 20 minutes part. I'd hate
  > to have to spend that much time with one of these
  > "enlightened" editors.
Did you have this same resistance to learning when you learned the languages you are presumably programming in?

"I'd hate to have to spend 20 minutes with Ruby, just let me describe my program in 'real' language please."


> Did you have this same resistance to learned when you learning the languages you are presumably programming in?

Speaking for myself, no. My reasons for disliking "enlightened" editors are similar to my reasons for disliking alternative keyboard layouts. If I can only be fluent in a highly specialized environment, in a sense, my skills become less portable. I like being able to walk up to someone's computer and just use it or help them with their issue. I do care about editing efficiency and superfluous keystrokes. But when I compared the keystrokes required to complete the example to what I would use in my preferred editor, (Programmer's Notepad) I didn't find the savings to be significant enough to warrant all the pain of learning a completely separate UI.

And FWIW, if I was actually doing that example in real life, I'd be in my IDE, clicking "Implement Interface", not wrangling text.

As for learning new languages, I enjoy doing it, and look forward to learning new ways of approaching problems that new languages can provide.


  > If I can only be fluent in a highly specialized
  > environment, in a sense, my skills become less
  > portable. I like being able to walk up to someone's
  > computer and just use it or help them with their issue
This is a non-issue. There are no versions of Windows, Linux or OSX that allow all text boxes to use Vi keybindings. The idea that if you started using Vi or Emacs bindings in an 'enlightened' editor, that you would lose the ability to edit textboxes on other computers is a straw man.

You could similarly say that you don't want to use VisualStudio because it would affect your ability to help out Eclipse users or vice versa.


Also typing in dvorak layout doesn't destroy your ability to type qwerty.


People that I know of that have personal experience do say it impairs it though.


I've certainly gone out of training on qwerty (or rather qwertz), but I was never actively impaired. Though in the last few months I went down the even more extreme route of getting a special keyboard not only an alternative layout. The Kinesis Advantage.

By the way, learning vi is probably the most standard compatible thing to do. Vi is a standard Unix tool, has been around for decades and will be around for decades more. (Not that I use vi much myself.)


> By the way, learning vi is probably the most standard compatible thing to do. Vi is a standard Unix tool, has been around for decades and will be around for decades more.

This feels a little bit like the scene in Superbad, where McLovin proposes to be named Muhammed to blend in, since it's the most common name in the world. It may be the most common OS in the world, but it's none too common 'round these parts. Off the top of my head, I can't even name two computers that have vi installed. The first is my work computer on which I installed gvim for another attempt after reading this very article.


I like being able to walk up to someone's computer and just use it or help them with their issue.

vi exists on pretty much every *nix machine out there. The only way this makes sense is if you mean "Windows computer", and even then extremely few of them have a text editor more complex than Wordpad, which has so few commands that yes, anyone can use them if they know ctrl+c/v and a couple of other things.


I do mean Windows computer. For my use, most of the computers I'd be walking up to do tend to have something more complex than Wordpad, like Visual studio.


Not that I'm a big fan of the douchey tone of the article writer, and apparently unlike this dude I find it trivial to switch between vim and Sublime Text or whatever other editor without having a crying jag, but...wait for it...vim does let you use the arrow keys.

He seems to be conflating vi and vim (personally I've only used vi once or twice in the last five years). Also, his grand sweeping pronouncement that you spend all your time in normal mode is, to me, utterly bizarre. I go into normal mode to do text manipulation. I live in insert mode because I'm actually writing stuff. In that respect it feels like every other editor ever.


If you're actually writing code from scratch in a linear fashion, then you do spend a fair bit of your time in insert mode. After a few years of vim use (about four years, so I'm not a grizzled veteran by any means), I've found that when I'm writing new code, I do use insert mode more often than usual.

But the difference is that when I need to make some edits to the code I'm writing, I immediately swap back to normal mode. It's not something you notice much if you don't use vi(m) a lot, but you go back and edit the code you're writing quite a bit.

From my experience with vim, this guy is spot on: someone who has really used vim for a long time will spend a majority of their time in normal mode, because literally you don't do anything in insert mode except write text in a linear fashion. If you want to move your cursor somewhere else, you go into normal mode to move it. If you want to erase a string you just typed, you go into normal mode. If you want to refactor your if statement into something cleaner, you go to normal mode. And the list goes on; normal mode, once you've learned it, is just so much more fluid that you will want to be in normal mode 99% of the time.

Vim can be a little crazy to use, yeah. But once you have learned it, it's unconscious. It reminds me a bit of algebra. When you first learn algebra, you're really focused on the symbolic manipulation. But as you get into the higher maths and have more experience, you'll find yourself rearranging equations without any thought. Vim is the same way, and that is what makes us vim users addicted to it: complicated text editing becomes subliminal.




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

Search: