4 ms·
Re vim: As a hobby developer (a perpetual newbie) the learning curve is an issue for me simply because I don’t yet understand the value in overcoming the curve.
by ryantgtg 5y ago
Re vim: As a hobby developer (a perpetual newbie) the learning curve is an issue for me simply because I don’t yet understand the value in overcoming the curve. “Efficiency” is not one of my programming goals, and so reasons like “vim is great - it’s super fast” have no appeal. So, remembering 80 unintuitive shortcuts just so I can do what I do in Kate, but a little faster? Eh…
- burnished 5y agoHave you ever seen an experienced user demonstrate some use cases? I'm in the same boat as you but that convinced me because some of it was like magic. I don't think the value is in uniqueness of function, right, but the sort of swiftness of expression you can get. More like having you workbench set up just perfectly, less like having irreplaceable tools. But the start up cost is what keeps me out - learning it, trying to integrate it into other tools that I don't fully understand anyway (VSCode in my case), etc etc.
- ryantgtg 5y agoOnly brief glimpses. And I have no doubt it’s amazing in capable hands. My interest in learning vim is likely solely rooted in some vague jealousy of these skills. I keep having to remind myself to be happy with what I have and stop spending what little time I have gazing at greener pastures.
- Karellen 5y agoThe value is that your fingers stay in the same place for typing, and for editing/commands. But also, once the commands aren't just in your actual memory, but are partially in your muscle memory, you don't even really have to think about what key sequence you're using; it just happens. Your fingers know. The advantage of both of these factors combined is that you don't have to think about editing, or the user interface. You don't have to break the flow of thinking about your code. You type code, you edit code, you rearrange code, and you only ever have to think about the code. You don't have to spare brain cycles to think about editing, your fingers just do it. It's like learning to touch type. There are two fingered typists who can type almost as fast as I can touch type. Or even six-fingered typists who might be able to go a bit faster. But even though they know where the keys are, they still need to keep an eye on the keyboard to type. They still need to think about the keyboard. But once you learn to touch-type, you don't need to think about typing any more. You just... type. Being able to keeping your eyes on the screen all the time just allows you to concentrate on your code, rather on the way you're entering it. By turning some conscious actions into muscle memory, it leaves your conscious mind able to spend more time on the things you want to think about.
- fknorangesite 5y ago> You don't have to spare brain cycles to think about editing, your fingers just do it. > Being able to keeping your eyes on the screen all the time just allows you to concentrate on your code, rather on the way you're entering it. I don't see anything here that is special or unique to vim or emacs.
- rtsil 5y agoThis is exactly what I'm aiming to do with my guitar playing. To internalize the instrument so much that I can only focus on the music and not have to think about where and how I should use my fingers. I practice hard to be able to achieve this. The thing is, I see the value in my guitar playing. But when I code, much of my time is spent thinking about what I'm coding, and much less for the actual typing and editing, so I don't really see the value for vim. That's why I finished the tutorial, but then never used it in actual coding. Purely my own opinion, of course.
- Linosaurus 5y agoI found doing a few vim tutorials valuable as a reminder to look up some basic text manipulation in other editors. Like selecting a text rectangle with the keyboard, or cut and paste a single line. Or that a text search is a perfectly reasonable way to move the cursor seven steps right to the next right paren.
- TeMPOraL 5y ago> “Efficiency” is not one of my programming goals, and so reasons like “vim is great - it’s super fast” have no appeal. Then think in terms of friction - friction that prevents you from doing what you want. The reason for pursuing this kind of efficiency in an editor is because the task of writing and editing text files is only means to an end as a programmer: your goal is to encode the program you have in your head in a form the computer could run. To persist a castle in the sand you're building. Your editor is usually the limiting factor on how fast can you do that. And this matter because the faster you go, the less friction you feel, the more time you have for the important part - thinking. If you can do this fast enough, cross a certain efficiency threshold, your mind will collapse the task, erase the perception of typing. Think of what happens when you learn to drive, truly learn. Your car becomes an extension of your thoughts, not something you consciously give inputs to. Now imagine driving by having to type in commands like "accelerate" or "turn left". Now imagine the same, but through submitting paper forms.
- ryantgtg 5y agoThanks. I think I’m just not at a programming level where my brain is working faster than my fingers. But I get it. I can relate in the following case: I like to write fiction, and lately I have been writing children’s stories that I’ve told my daughter as I put her to bed. I’ve found that I can invent and tell a pretty decent story in the span of 10 minutes. When I later write up that story, it takes me 1.5-2 hours. Adding in punctuation seems to slow me down the most, in part because those non-story elements distract me and mess up my flow. I’m testing whether it’s faster to use a voice to text app, and then edit in the punctuation at the end.