5 ms·
Any tool you need to use more than a few times is worth learning properly. And any superior tool is worth switching to and learning if you would use it frequen
by blunte 8y ago
Any tool you need to use more than a few times is worth learning properly. And any superior tool is worth switching to and learning if you would use it frequently.
I suppose it depends on how one's mind works. If the mind moves slowly and holds onto ideas and abstractions easily, then the slower motor movements of moving the hand back and forth from arrow keys to home keys, and to mouse and back, are not really a problem. But if you're like me, and your mind is constantly racing, you need to be fast to get your ideas out before they're gone/replaced.
It's not just the time cost of moving the hand from home row down to find the correct cursor key, do the presses, and then move back to typing position - it's also the likely visual/mental cost of looking away from your screen to aid in positioning the hand, then looking back at the screen and finding what you were looking at before. All those movements and recalibrations take time and involve mental context switches.
If you're spending a lot of time using a certain set of tools, there is no reason to avoid learning those tools well. Refusing to do so is choosing to be ignorant and subperformant.
Now, if you'll only use the tool once in a while, perhaps it's not worth the effort. But chances are, there's some other tool you use often that you could master for your long term benefit.
If you program, Vim (behavior) is very difficult to beat for getting whats in your head out and into your computer VERY quickly. As a bonus, using a full featured IDE like one of the JetBrains products, but with the Vim plugin, is win win. You get the code editing speed of vim, plus the project navigation and other benefits of the IDE. Totally worth the time investment.
- muststopmyths 8y ago> As a bonus, using a full featured IDE like one of the JetBrains products, but with the Vim plugin, is win win. I refused to use Visual Studio for code editing until ViEmu came along. These days I use VsVim. vi is fantastic for editing/writing and using the other niceties of Visual Studio is a win-win, as you said.
- transpostmeta 8y agoThis cannot be overstated. 90% of the advantages of VIM is the modal editing interface, which can be used beautifully in Visual Studio, Visual Studio Code, IntelliJ IDEA, and other nice IDEs. The VIM way is a very good way of editing text. IDEs offer a lot more than editing text. Faking an IDE within a text editor with random plugins is terrible. Emulating VIM text editing within a real IDE is amazing. Just use VIM keybindings in your industry standard IDE, you will be able to use all the tips in the linked article and still not miss out on anything offered by the IDE. The only problem is that the VIM keybindings are integrated into direct text editing, but not the IDE UI. For example, in Visual Studio, IntelliSense offers you a choice of possible completions for a variable name you are typing. You can only navigate these choices with your cursor keys, rather than with the VIM-style jkl; keys. But it's a small price to pay for really good text-editing qualities!
- learc83 8y ago> You can only navigate these choices with your cursor keys, rather than with the VIM-style jkl; keys. But it's a small price to pay for really good text-editing qualities! I have ctrl-j and ctrl-k mapped to down and up on my keyboard for just this reason. If you have a keyboard that supports macros it's easy to do and it works for all those annoying places in Visual Studio and the rest of the OS you need to use arrow keys for.
- sjy 8y agoThere is a loss though, which is that Visual Studio is incredibly slow, and editor latency has "important effects on typist behavior and satisfaction" [1]. You wouldn't want to use Visual Studio to edit a single config file, unless you already had it open for a big programming project. Adding a Vim binding plugin makes things worse and often introduces a startup delay before the editor enters normal mode, meaning your first command gets typed into the file unless you pay attention and wait for the UI to get ready. Vim opens even ridiculously large files that have no place in a text editor instantly, every time. [1]: https://pavelfatin.com/typing-with-pleasure https://pavelfatin.com/typing-with-pleasure
- aboutruby 8y ago> ... But if you're like me, and your mind is constantly racing, you need to be fast to get your ideas out before they're gone/replaced. I write extremely fast and use arrow keys (and all kinds of vim shortcuts). > it's also the likely visual/mental cost of looking away from your screen to aid in positioning the hand I never look at my keyboard when using vim.
- blunte 8y agoThere is absolutely no way you can move your right hand to the arrow keys faster than I can hjkl move in Vim. I don't even have to move to reach the ESC key because I use ctrl-[ instead. Even if you have perfect memory and perfect motor control to enable hand repositioning, just the act of moving the hand from one location to another and back will cost time that "power" vim users don't waste.
- macinjosh 8y agoSo what? How does saving a few seconds or even minutes per hour while writing code really make an impact at the end of the day? I spend way more time reading code than I do writing. As a vim user who uses hjkl sometimes and the arrow keys other times I am still well employed, my boss has never complained I waste a fraction of a second reaching for a key. If you work an environment where every second matters to that degree I feel sorry for you son. We're programmers, not elite athletes. A tenth of second doesn't matter here IMHO.
- chongli 8y agoUsing vim is not at all about the number of milliseconds saved, it's about lack of interruptions. An expert vim user can get into a flow state and be moving and jumping around the file, adding and deleting text, without stopping to think about how to do a command in their editor or worse, having to reach for the mouse and figure out where the cursor was left last time. For some people, having your flow state disrupted can cause a very long delay as you have to figure out what you were doing all over again.
- higuys 8y agoI use vim every day. I only know i, /, :q!, And :wq. If I am actually creating something I'll use Atom, change it to LF, and paste it into Putty when I'm done.