Care to elaborate on that? I'm fairly entry-level when it comes to vim and I'd be interested to hear some good examples of what it can do over something like sublime.
The level of comfort using vim for a proficient user is very very high, so much so that it becomes difficult to switch out to other editors. I'm quite sure that textmate, sublime and emacs are perfectly good editors, but there's no way I could ever switch full time.
If you're a touch-typist and you become proficient in vim, the friction between thinking about an edit and it materializing on the screen in front of you is reduced. I think 'whoops, need a comma there', my hands move around a little without thinking and the edits done. Contrast this with move hand to mouse, click where you want to edit, hit backspace, type in new character.
IME this is not necessarily faster, just a lot more comfortable once you get used to it.
A lot of comments will say 'you can have vi-mode in <other editor>' but I've yet to see an implementation that covers the entirety of normal mode _and_ supports custom remaps, and even then the mappings would need an interface to its plugins before it approaches a vim-like environment.
Why would I constrast it with reaching for a mouse? I've never in my life thought whoops, need a comma there, and reach for the mouse; other editors can be used through the keyboard, this isn't unique to Vim.
Because vim has a lot of commands which are to do with navigation, with standard editing controls you would either press the left arrow a bunch of times while watching the prompt and stop when it's in the correct place. Then you would enter the comma and repeat the process going right.
(I know you can use home/end or ctrl to jump over words, however often these aren't always applicable and often still need visual feedback)
In vim it's significantly easier to jump to the desired point on the line with fewer key strokes and no need for a visual feedback loop.
In short; it's not the fact you can use the keyboard to navigate, rather it's the fact that you can navigate efficiently with the keyboard without having to think about the position of the cursor.
> I know you can use home/end or ctrl to jump over words, however often these aren't always applicable and often still need visual feedback
Which makes vim faster, but doesn't mean one needs to reach for a mouse; secondly, what touch typist isn't already watching what he's typing? Requiring visual feedback is hardly slow.
> In vim it's significantly easier to jump to the desired point on the line with fewer key strokes and no need for a visual feedback loop.
I'm aware of that, but that's not the argument you made. You said you didn't have to reach for the mouse, well, neither do any of the other editors.
> In short; it's not the fact you can use the keyboard to navigate, rather it's the fact that you can navigate efficiently with the keyboard without having to think about the position of the cursor.
While true, you overestimate how much other editors make you think about the cursor as well. Our muscle memory works just as well as yours and though vim gives you more options to exploit it, it's not as if other editors don't offer anything other than visual and a mouse.
> Which makes vim faster, but doesn't mean one needs to reach for a mouse; secondly, what touch typist isn't already watching what he's typing? Requiring visual feedback is hardly slow.
Yes it is. You can go seven or eight keystrokes in vim recording a macro without any feedback whatsoever, and still end up with a wickedly powerful edit.
> I'm aware of that, but that's not the argument you made. You said you didn't have to reach for the mouse, well, neither do any of the other editors.
No I didn't. I simply said contrast that to moving your mouse. You could also contrast it to ctrl+right arrowing to the word on the line but in vim thats just `5w` (where five is the number of words along the line) in normal mode. It still requires less cognitive and physical effort. You could also contrast it to the built-in readline ctrl+ shortcuts and it would still be less keystrokes.
> While true, you overestimate how much other editors make you think about the cursor as well.
No I really don't. I wasn't magically born with vim superpowers. Like everyone else I started with a regular text editor and worked my way to vim proficiency. I became proficient with eclipse, crimson editor and quite a few others before deciding that vim was what I wanted to invest in long term.
> Our muscle memory works just as well as yours and though vim gives you more options to exploit it, it's not as if other editors don't offer anything other than visual and a mouse.
Very well, good luck to you with your other editors. I seriously think you should use whatever you feel most comfortable with.
Vim isn't only about movement, it gives you some very efficient ways to actually manipulate text.
Take this example line of code:
#define test "Some magical string."
Say the cursor was at the beginning of the line and you wanted to completely change the contents of the string. In a regular editor, you might <ctrl><Right Arrow> a few times and <Del> a bunch to remove everything in the string before you start typing the new one. In vim, you would simply:
f"ci"
And you'd be ready to start typing the new string. Or if you wanted to capitalize 'test':
WgUe
It's difficult to understand the power of modal editing until you experience it
The laziness level that can be achieved with vim's modal editing still surpasses that of most editors. When you're used to vim and you have to use something else, you even become disappointed when you have to reach for the arrow keys. hjkl is far too convenient. Heck, I hardly use backspace anymore even.
Certainly, but then you're spoiled by vim and everything else sucks, or you're trying to find vim-bindings for it. I'd much rather be accustomed to standard bindings that work in most programs and move between them without all the frustration of overly opinionated programs that think their bindings are the best.
Or you can can just appreciate that you get to use one of the best input models only while you're coding, and settle for regular inputs the rest of the time. It's not like you'll forget how to use the arrow keys after learning Vim.
I don't know if I'd call Vim overly-opinionated. It's a legitimately incredible way to work with text.
I would describe myself as a pretty proficient and comfortable user of Vim and I have switched to Other Editors for short and long periods of time. Really, switching text editors is like switching languages: Every time you learn a new language, you also learn a new way to think and express yourself.
Vim is absolutely awesome, however it is but one way of editing text. Other methods have their own merits and incorporating their styles in your workflow will make you more proficient in the long run even if you eventually come back to Vim.
I'm fairly proficient with both Vim and Emacs and I can feel it when I'm not using either editor. For example, I'm using a browser on Windows and I want to jump to a line's end. In Emacs (or on OS X which uses Emacs shortcuts), that's Ctrl-E and in Vim that's $. On Windows, I fumble with the arrow keys or start reaching for the mouse.
When you really know a fundamental text editor, that sensation of helplessness gets worse and worse when you can't use the shortcuts that are burned into your fingers.
If you don't know what I'm talking about, I suggest reading the StackOverflow answer "Your problem with Vim is that you don't grok vi."
I spend 95% of each day (not just my 8-5 - 95% of my time on a computer at all) in vim. The rest is in firefox or in a console briefly to tell it to run my tests. I code all day every day, and I quite enjoy it.
Today, I had a 7 hour meeting with a customer to spec out a new project. I had to put together mockups in balsamiq. On a mac (I'm a linux user). My level of discomfort was extremely high, eclipsed only by the fact that since a customer was there I couldn't take to just cursing like a sailor.
When you keep your hands on the home row for an entire day and then all of the sudden you have multitouch swipe gestures and clickie-scrollie touchpads and home keys that don't go home and delete keys that delete the wrong direction and inadequate terminal emulators, HOLY CRAP IS IT LIKE MINI-DYING.
The conventional end-of-line hotkey for Windows applications is the End key, which on a fairly traditional keyboard like the one I am typing this on requires that my right hand move several inches to the right and find that key on the island; I can't touch type this effectively and it compares poorly to C-e or even $ (itself not especially a convenient operation). Gnome and the Mac don't have this problem because both of them largely retain the simpler Emacs style keystrokes; Firefox does have this problem (at least here) and it pisses me off every time.
The very first thing vim users learn is to avoid the arrow keys. I hate moving my fingers off the home room to navigate. Using hjkl for navigation removes that pesky break between inserting text and navigating.