6 ms·
I don't understand this attitude. It's clearly more conducive to solving problems to be able to move around our environment more quickly. It's extremely useful
by antisceptic 4y ago
I don't understand this attitude. It's clearly more conducive to solving problems to be able to move around our environment more quickly. It's extremely useful (compared to a beginner who only knows insert and write quit) to understand the different vim modalities as well as a few commands to jump around a file or to perform regex or to call an external command.
When you're not proficient with the necessary tools, you're interrupting your flow with what you consider mundane. That you consider text editors mundane is more reason to move as much of that process into muscle memory as possible, not less!
Why are we pretending like mastery of our tools is unimportant? I hear this sort of opinion most eagerly expressed by engineers who in fact are quite handy with vim! Is this some new kind of flex where we're all pretending to take a purely academic approach to programming instead of becoming proficient with the tools of our trade?
- blep-arsh 4y agoThis is true for tools in general but I've managed to master vim to the point I can be somewhat productive yet it never feels quite ergonomic. Moreover, I think vim-like UI is holding everyone back nowadays. Learning all the intricacies of vim feels like an exercise in brute-forcing a deliberately user-hostile design. For example, is it really still OK to have little to no visual feedback when entering commands with range/count prefixes, or to have to fall back to custom commands and configs in order to search for strings containing "/"? Or have commands with tiny edit distance between them do radically different things (e.g. "w! " and "w !")? Vim's modal editing implementation also can't handle non-Latin keyboard layouts so I find myself switching keyboard layouts all the time (e.g. normal mode->insert mode->layout switch->type some text->layout switch->normal mode).
- lycopodiopsida 4y ago> Vim's modal editing implementation also can't handle non-Latin keyboard layouts This issue is solved by langmap.
- blep-arsh 4y agoIt really isn't. I've spent a lot of time trying to tune langmap/keymap and looking into other options but the result is mostly unsatisfactory. Some of the issues: only translates the first letter of the command; doesn't support :commands; isn't expressive enough to remap punctuation. Vim needs to be keyboard layout-aware in order to support non-Latin keyboards. It also needs to know whether the current input state is expecting text or a command (e.g. typing ":s/" from the normal mode should always be parsed using the Latin layout but the currently active input language should be used following the "/").
- deleted 4y ago[deleted]
- wooque 4y agoBest programmers I know don't use vim. If you feel bottleneck with your text editor you are working on wrong problems.
- racked 4y agoIf you're forced to work in the terminal, vim's great. But to get it to do something approximating an IDE, is it worth the time to tweak configs/plugins and memorize hotkeys, rather than just using a _real_ IDE? Besides that, I just find the whole method of navigating (skipping words, skipping an X amount of lines) counterintuitive. It's nothing I can get used to, I will always miss the precision of just taking the mouse and getting the cursor exactly where I want it in one sweep and click.
- cod1r 4y agoI 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.
- sanderjd 4y agoI wrote a comment agreeing with your parent comment, but this probably applies to me: > I hear this sort of opinion most eagerly expressed by engineers who in fact are quite handy with vim! But to me, that makes me think that you should wonder whether there's something to that. For me, you're right, I did get really handy with vim at one point. After I had been using it to a very basic level for two or three years, I felt kind of sheepish and guilty and endeavored to learn it properly. So I bought into doing it "right" for awhile, wrote a bunch of custom script to customize it, the whole shebang. And my conclusion after that was that it wasn't really worth it. I went back to just using the basic stuff. This is also, importantly, supported in every IDE's keybindings, so I can use modal navigation and editing anywhere without needing to customize anything, which is pretty great.
- croh 4y agoIt is not about only Vim as editor but Vim as keybindings too. Nowdays, most of all modern IDEs support Vim keybindings along well integrated IDE features.
- archarios 4y agoEven a lot of web-based IDE type things have VIM bindings available!
- BeFlatXIII 4y ago…and Mac OS X has Emacs-like bindings. We live in a world of abundance.
- dmitriid 4y ago> It's clearly more conducive to solving problems to be able to move around our environment more quickly. Then vim ain't it. My "vim-empowered" colleagues spend significantly more time trying to find symbols, related configs and tests, function definitions and interface implementations than I do. Because their hodge-podge collection of vim plugins and extensions rarely amounts to anything more than a full-text search across the whole project. But sure, you can count the number of lines where you need to go and then the number of characters/words you need to move in the line and code it in 3 characters. By the time you've done that I've clicked there with the mouse, found the definitions and done project-wide refactoring.
- bee_rider 4y agoI’m definitely not going to try and endorse intentional incompetence. I think it is just not so tricky in the first place. If you start out with “you can use hjkl for directions, and y for copy, d for delete, these can be combined with directions and prepended with numbers; remember the modes, and :w and :q” vim is already as good as most others editors. Then I’d just start using it, rather than trying to learn from the top. My filter for when I should learn a new feature is when it solves a task I find repetitive and annoying (or I will make a post on Hackernews that says learning Vim is useless, to get a list of features that people actually use day to day). Since we all have different idiosyncrasies, this filter will be different from person to person, so I don’t really get the idea of a guide. That said, I’m just describing what worked for me; if someone wants a guide they should go for it, we all learn differently after all.
- sedawk 4y ago> My filter for when I should learn a new feature is when it solves a task I find repetitive and annoying There! You said it so well... that's the #0 reason why I go RTFM'ing, because most likely my problem fits a pattern someone already encountered and figured a solution for. Or nobody did and I put together a less annoying workflow to deal with it. Sometimes the effort is worth it, but often it is just fun trying out new things/techniques.