6 ms·
I feel like at a certain point of efficiency there are diminishing returns. A good analogy is typing speed. You don't need to have 200 wpm to be productive. Eve
by cod1r 4y ago
I feel like at a certain point of efficiency there are diminishing returns. A good analogy is typing speed. You don't need to have 200 wpm to be productive. Everybody adapts to how efficient they need to be at what they do. Vim is not a requirement for being productive. If it was, it would be the most popular editor. I also don't think the person you are replying to is saying that it isn't important to "master" your tools. I think they are just saying the editor that you use isn't the most important thing and I agree with that sentiment.
- archarios 4y agoVS Code with vim keybindings is extremely popular. If you don't know how to use vim, you just don't realize how much of a time/effort saver it is. I can't imagine not having wrist pain if I had to use the mouse every time I wanted to move my cursor around for more than a few characters/lines. Trying to not use vim feels like going back to the stone age whenever I can't use it. I like to use vim bindings even when I'm editing english.
- scotty79 4y agoCtrl+G + line number Ctrl+F + what you are looking for PgUp PgDown plus visual scan Home, End, arrows (plus potentially control) for pinpointing the exact spot. Shift for block marking. Ctrl+C (or X), Ctrl+V for moving stuff around. No reason to touch mouse or learn cryptic shortcuts.
- blackbear_ 4y agoOnly after learning vim you realize how clumsy and slow this is.
- tmtvl 4y agoI used vim for 5 years, afterwards I switched over to Emacs, and I couldn't disagree with you more. What's clumsy and slow is having to switch between insert mode, normal mode, and visual mode hundreds of times while working rather than just using modifier keys for special actions.
- maleldil 4y agoIf you're entering normal mode for one or two commands at a time, that could be problem. However, if you're fast at entering normal (i.e. use jj, fd, Caps Lock as Esc, etc.), that's not a meaningful overhead. On the other hand, having to constantly hold Control/Alt, including long chords (e.g. with prefix + count), feels much worse for me. I use Emacs keybinds on the terminal (outside of vim), but I can't imagine having to constantly press modifiers. It's not as comfortable as switching to a mode where those actions are explictly first-class.
- Scarbutt 4y agoThe difference in manipulating text in emacs vs vscode is day and night though.
- jamal-kumar 4y agovim equivalents: 20g line number / find what you are looking for same for pgup and pgdown i think what you're describing sounds a bit like visual mode which is just v d and p for cut and paste if moving stuff around needs to be done (dd for whole line, 5dd for 5 lines, v and then j a few times in visual mode before d or y for yank (copy), etc...) Note how you don't have to strain your pinky to hit ctrl for any of these?
- dmitriid 4y ago> Note how you don't have to strain your pinky to hit ctrl for any of these? Note how insanely context-dependent all these are? How it's completely different commands for what is essentially the same operation? Keys can be remapped (I have CapsLock mapped to Ctrl).
- jamal-kumar 4y agoYeah I got mine remapped to esc It's just a different modality mine just exists a little closer to where my fingertips chill on the home row
- noloblo 4y agoElectron makes it too slow neovim and sublime are snappier it's not even funny
- zamnos 4y agoYou don't need to hit 200 wpm but I haven't seen too many programmers who hunt-and-pecks at the keyboard and can't touch type. Even on a Qwerty keyboard you should be able to get high double digits, if not hit/exceed 100 wpm. The two sites I like for practice are: https://monkeytype.com/ https://monkeytype.com/ https://play.typeracer.com/ https://play.typeracer.com/
- soitgoes511 4y agoI have to switch back and forth between french (azerty) and english (qwerty) many times a day. My typing speed has regressed. But I manage just fine without hitting 200 wpm. How does one practice the constant switiching?
- aquariusDue 4y agoTyping fast for sport is fun, that I understand. But it's really weird (to me at least) how most developers say that measuring lines of code as a performance metric is an awful idea, and then there are others that more or less kinda shame people for not being good or great typists. Am I crazy? Isn't it conflicting? Maybe those two groups don't overlap at all? Then do great typists believe measuring lines of code to be a good idea? And being proficient at using your code editor doesn't require or exclude being fast at typing. Between the two I personally would chose mastery of vim/emacs or some other IDE over having a typing speed faster than 80 WPM. Sure, both would be great, but if I have to choose one I know which I prefer. Full disclosure: I type on a QWERTY layout at an average of 65 WPM. One thing I'd add is that some stuff like Home Row Mods, Caps Lock as ESC and enhancements like that seem to me like a larger productivity booster than the jump from 70 WPM to 100 WPM. But even so I might be wrong on that because I personally haven't experienced writing faster than 70 something WPM at my best. Anyway, rant over and I apologize if I come off as rough. It's just something that's been nagging at the back of my mind and I still don't know how to properly put it into words.
- zamnos 4y agoI don't see how they are related at all! Even the worst programmer can see that if we were to judge by LoC that they could add frivolous lines to juke the stats. LoC is stupid and I don't see how LoC is relevant to the conversation at hand. I do think that every programmer's had that stroke of inspiration where they can't type fast enough to get the code out of their head though As far as typing speed, the difference between 10 wpm and 40 wpm is far greater than 70 wpm and 100 wpm. You don't have to hit 100 wpm to be a good programmer, but I have a hard time believing you can be one hunting and pecking at 10 wpm. (With exception made for the blind.)
- btschaegg 4y agoI'm in two minds about this. Yes, wpm aren't everything (see the other discussion in this thread) and the same goes for the full range of your editor's functionality. On the other hand, tools like Vim, Kakoune and Helix shouldn't be treated like your average Java IDE, for example, which shifts the line of what I'd say is reasonable learning investment. What you're dealing with there is a programming language for text manipulation. If you're fluid enough in it, you open your mind for solutions you'd never have considered before. I'd say you'd need at least intermediate Vim skills and should know macros until that effect kicks in. I have quite some anecdotes about e.g. creating integration tests where my colleagues wouldn't test something properly just because doing so would involve 10 minutes of drudge work in their simplistic editors, instead opting for "deploy & pray" when the task was totally doable in a couple of seconds with a Vim macro. I find that at least in this regard (as for all programming languages), Benjamin Lee Whorf's quote certainly holds true: "Language shapes the way we think and determines what we can think about." That's why I also think GP had a point. I would probably be much more in your line of thought if we were only talking about the usual contestants like refactoring snippets etc. here, although even having them handy will already influence how many of us work with our code. Edit: As another analogy, I feel that modal editing has about the same effect on thinking as switching from roman numerals to arabic ones. The reason why it hasn't completely caught on is just that it's less intuitive and text manipulation is not as fundamentally important as calculations for our civilization.
- dmitriid 4y ago> would involve 10 minutes of drudge work in their simplistic editors, instead opting for "deploy & pray" when the task was totally doable in a couple of seconds with a Vim macro. I really very much doubt this. Sounds like an application of rose-tinted glasses and wishful thinking to some one-off task that then is extrapolated to all tasks.
- btschaegg 4y agoHey, I didn't say I do this every day. But I've had enough of these conversations that I can assure you that this low a bar is needed for some people to skip important jobs. If your doubt applies to the usefulness of knowing the system, I don't really know what to tell you -- if you can't take someone's word for it, I don't think anything less than you experiencing it yourself would convince you, anyway. As for one-off tasks: Yes, that's what Vim bindings are good for. Just like AWK-Scripts are great for throw-away scripts. Being able to perform simple one-off tasks quickly is, incidentally, a skill I find to be far too rare even in programmers. I mean, I would've thought at least us techies see the benefit in knowing how to teach the computer to do the menial tasks for us.