4 ms·
I've been a die-hard vim (now neovim) user for over a decade, and here's my advice: learn it if it's fun. It's not going to turn you into a different kind of pr
by mikenew 2y ago
I've been a die-hard vim (now neovim) user for over a decade, and here's my advice: learn it if it's fun. It's not going to turn you into a different kind of programmer and it's not going to make your productivity skyrocket.
I love vim, not because of some huge speedup, but because it just feels good. It's like being in a workshop where all the tools are in just the right spot. I figure if I'm going to spend 8 hours a day coding I want it to feel really nice. And it does.
- jamesponddotco 2y agoThis. I have loved and used Vim since I was 18 years old, but I did because I fell in love with the tool right away and felt right using it, not because it was "cool" or whatever. I tried other editors, it didn't feel right, I didn't force myself to continue using them. My advice if you're trying vim is the same... if it doesn't feel right, if it doesn't feel like the tool works for you, look somewhere else.
- photon_collider 2y agoStrangely, I've noticed mixed opinions from developers about whether learning vim is a productivity boost. Some people believe it is while others disagree. I'll admit my FOMO was what originally got me to start learning vim. I still barely know the basic motions but I'm starting to think it could lead to a productivity boost once I get over the learning curve.
- TheRoque 2y agoThe productivity boost is highly subjective, it depends a lot on your work. Do you edit files a lot or spend more time thinking ? Do you use some graphical tools on the side that forces you to grab your mouse anyways ? With AI tools now, where you can now basically select a file and prompt "rewrite all in snake_case" in VSCode it's becoming even less evident. I think the biggest gain from vim is simply if you're more happy using it or not.
- znpy 2y ago> The productivity boost is highly subjective There is a quote from Apple UX designers/engineers about testing the keyboard vs mouse for doing stuff in the OS. Apparently the test subject always reported that they keyboard-driven controls were faster, but the timing measurements showed that mouse were faster. Chances are the keyboard feels faster, rather than being actually faster. I'll add another point of view I developed while observing many LaTeX vs Word or Excel vs SomeObscureCoolThing(tm) threads: people will happily waster thousands of hours over many years to learn vim/emacs/LaTeX/SomeObscureCoolThing but will plain refuse to spend 20-200 hours (again, over many years) to properly learn how to use Jetbrains' stuff (IntelliJ etc) or Word/Excel/PowerPoint (or the LibreOffice equivalent) or some other mainstream tool. I've seen countless time web-apps being developed in months that could have been an excel sheet developed in a week. People wasting weeks on their documents because after a software update LyX would not open the documents anymore. People (particularly in university) being super-stressed, wasting precious time and occasionally missing deadlines because they waster too much time fighting LaTeX to align tables or images because they refused to properly learn how to use Word (or the LibreOffice's equivalent, writer). And don't even get me started on the plumbing of various tools together. Most vim/emacs user (and I say this as an emacs user) can only integrate other tools as long as there is some copy-paste-ready code, but they can't go much further. So... Yeah productivity boost is incredibly subjective. And chances are it's also fake. It's not too much of a big deal (meh) but I'm annoyed by the fact that all this isn't even acknowledged.
- dvdkon 2y agoMaybe it comes back to the feeling of fun mentioned by GP? I also enjoy working with Vim, while LibreOffice Writer is clunky and Word is not much better (though I have no love for LaTeX). I could make a spreadsheet in under an hour, but if it'll make me feel like I'm hacking together something buggy in an inadequate tool, I'd rather spend more time making a web app or a Python script. Likewise, mandating a file per each class in Java is no big deal on the surface, but having to create and juggle so many files for small classes feels terrible to me, so a seemingly small detail turns me off the language. I think we should examime these feelings, because they ultimately drive (some part of) our behaviour, and I'd guess they're not just random preferences but are rationalisable.
- stvltvs 2y agoThe real productivity boost happens when you become fluent and it feels like a second language that describes actions on text objects. At this point I can do most things as fast as I can think what needs to be done. It's like being bilingual.
- ilrwbwrkhv 2y agoOnly problem is that vim doesn't work with LSP. It is a broken tool. Easy check proving absolutely that it is broken: 1. Create a new wails project with `wails init -n myproject -t svelte-ts` 2. Create a svelte file and use a function defined in app.go 3. Run `wails dev` to compile and run the app 4. Delete the function from app.go Result: The svelte file which imports the function generated from app.go doesn't show any errors even thought the function doesn't exist anymore. So use VS Code or Sublime which actually work with LSP without issues. Don't use broken tools for your work.
- naught0 2y agoIt sounds like something broken with this specific workflow. I use LSP features in typescript and python daily without issue. Don't use a tool that's broken for your work. There are plenty of bugs in other editors
- ilrwbwrkhv 2y agoVS Code has no bug which is not also in Neovim. So VS Code is the best of the lot.
- xigoi 2y agoBugs are not the only thing that matters. VSCode is way slower than (Neo)Vim, uses more memory, contains proprietary parts and lacks many of (Neo)Vim’s features.
- jauntywundrkind 2y agoAs a developer, I've long tended to leaning into the tech, to figuring out how to script & control my world. (It's been a strong distinction versus a lot of folks I see much more interested in getting through the mission at hand at express a pace or a directly a path as possible). I'm not a great vim user by any means, but it feels comfortable & nice for me at this point. Vim is forever part of the virtuous cycle, forever letting you mix this idea for doing something with that technique. It fits my mentality fantastically well. Computers rarely have suchnfantadtically well equipped sandboxed, and even more rarely is software so module & flexible, so readily recombineable. And I just absolutely adore being in a world where anything can be scripted, where every single ounce of power I get compounds with and works with every other bit of power I've accrued. Where everything fits together, and is useable on the fly, or usable when trying to do more elaborate crafting. One little recommendation I would have given my old self, expand the power domain. I was a little slow to really get into scripting. VimScript was kind of ok but also for me personally kind of ass, but I should have leaned in more. Now a days NeoVim has excellent Lua support built in which is great, and I really really really love Denops which lets me use a lot more tools and libraries and ecosystem that I know & that are more mainstream (JavaScript). https://github.com/vim-denops/denops.vim https://github.com/vim-denops/denops.vim This is totally off topic, but the one thing that's not in any way at all modular or composeable is that vim assumes there's only one screen, only one output. It's been almost a decade since Tarruda blogged the idea of Smart UI where multiple apps could effectively start sharing a headless neovim, where there could be multiple different terminals at once, but there's been (afaik) no progress decoupling the core of vim from rendering into one and only one screen, which is my transcendent vim dream to expand beyond. https://tarruda.github.io/articles/neovim-smart-ui-protocol/ https://tarruda.github.io/articles/neovim-smart-ui-protocol/
- daft_pink 2y agoI would say that it’s important to learn and use the vim basics, because you can generally login to any linux server or mac and edit a text file quickly and efficiently, but I would not spend too much time beyond that unless you really love it.