5 ms·
I always want to go this far with vim but I can’t break just using the vim bindings in IDEs like IntelliJ or WebStorm. Is there any big reason for me to forsake
by yakattak 4y ago
I always want to go this far with vim but I can’t break just using the vim bindings in IDEs like IntelliJ or WebStorm. Is there any big reason for me to forsake a full blown IDE for vim?
I still use vim for small stuff but for navigating commercial codebases I can’t imagine not using a fully fledged IDE.
- eric-burel 4y agoNo I've tried a few times and it's not realistic especially since VS Code
- code-blooded 4y agoThe advantage of (Neo)vim is that it lets you create a PDE (personalized development environment) [1] where you can customize every little detail to your liking easily [2] and as a result program and navigate at the speed of thought. It takes some effort and likely 20-30 plugins, but you get to learn a lot and IMO become a better programmer as a (unintended?) side effect. For me it's part of the continuous improvement to understand your tools. Last but not least it's just so much joy when you can envision a certain feature (e.g. I wanted to have a function header visible in the first line of editor even when the top of the function has scrolled off the screen) and either find a plugin or program it yourself. This is exactly the kind of primal joy that initially made me pursue the career of software engineer. [1] The concept of PDE is explained in this video: https://youtu.be/QMVIJhC9Veg https://youtu.be/QMVIJhC9Veg [2] Easily is relative. IMO each little customization is quick, but you'll end up customizing hundreds of things over time.
- endorphine 4y ago> e.g. I wanted to have a function header visible in the first line of editor even when the top of the function has scrolled off the screen This sounds super-useful. Do you mind sharing how you achieved this?
- lancebeet 4y agoThere are a couple of plugins that do this. For vim: https://github.com/wellle/context.vim https://github.com/wellle/context.vim For neovim (much higher performance in my experience): https://github.com/nvim-treesitter/nvim-treesitter-context https://github.com/nvim-treesitter/nvim-treesitter-context I believe there's now also a VS code plugin for the same behavior, but I don't know what it's called.
- ndand 4y ago> I believe there's now also a VS code plugin for the same behavior, but I don't know what it's called. It's called "sticky scroll". It's a relatively new feature of VS Code.
- pjot 4y agoIt actually ships with vscode! https://code.visualstudio.com/updates/v1_70#_editor-sticky-scroll https://code.visualstudio.com/updates/v1_70#_editor-sticky-s...
- code-blooded 4y agoSure thing! https://github.com/nvim-treesitter/nvim-treesitter-context https://github.com/nvim-treesitter/nvim-treesitter-context is what I use nowadays. It has a little clip demonstrating how it works so you'll instantly know if you want it or not ;)
- firstSpeaker 4y agoDo you by any chance have your whole config shared somewhere?
- code-blooded 4y agohttps://github.com/mateuszwieloch/dotfiles/tree/master/.config/nvim https://github.com/mateuszwieloch/dotfiles/tree/master/.conf... I'm rewriting it to be 100% Lua at the moment. It's 80% done and I've just pushed it for you. Take a look at the init.lua and ignore init.vim which is going away and is in a messy transitional state. The only thing that's missing in the Lua config is LSP integration, but that should be done by tomorrow as well. Edit: Just remembered that the Lua version also has no plugin manager, but there's plugin-install.fish script that just clones plugins into the correct folder, which works for now. I'll probably add lazy.nvim plugin manager in the upcoming weeks as well ;)
- firstSpeaker 4y agoThank you. It is 404, probably the repo is not public?
- code-blooded 4y agoWhoops! Making it public right away :)
- wilsonjholmes 4y agoLove this remap! ``` -- Move cursor to start/end of line vim.keymap.set({"n", "v"}, "H", "g^") vim.keymap.set({"n", "v"}, "L", "g$") ```
- SuperCuber 4y agoYou didn't ask but here's mine https://github.com/SuperCuber/dotfiles/tree/master/nvim https://github.com/SuperCuber/dotfiles/tree/master/nvim I just finished refactoring and dusting off my config with a structure similar to this video https://www.youtube.com/watch?v=w7i4amO_zaE https://www.youtube.com/watch?v=w7i4amO_zaE
- christophilus 4y agoMy journey was VS to VS Code to Neovim. I can’t see myself going back. Maybe if I went back to writing C# on Windows, but as it is, TypeScript on Linux is just fine with Neovim, and I don’t find myself missing anything. When I leave Neovim, everything else seems slow and frustrating by comparison. If anything, that is the reason to avoid it. It ruins a bunch of subpar editors for you.
- ansc 4y agoThere's a Vim keybinding plugin for Jetbrains products which I can highly recommend. I fully agree -- even as a Vim aficionado the productivity of these big IDEs is impressive. Without Vim keybindings I'd have a harder time justifying it though.
- tipsytoad 4y agoI jump between neovim and vscode with neovim every few months. Neovim can be faster and more scriptable but vscode just works. If you start using Neovim know you'll be spending hours breaking and updating your config to reach "vimvarna". Let me know if you ever get there ;) you can enjoy the journey getting close to perfect just for something else to break the next day. It is crazy to me people try to shoehorn jupyter notebooks and debugging into Neovim, if you haven't try the jupyter notebook extension in vscode, will make you reevaluate your life choices
- code-blooded 4y agoYes it takes quite a lot of effort to get there. Vim motions take weeks to become your second nature, and then you'll probably spend 20-50hours finding plugins and configuring Neovim until you reach the Vimvarna. That's a ton of effort, but like I explained in the other post, I found it being both fun and making me a better programmer as an unintended side effect. Breakages are rare though especially if you use a plugin manager that shows you commits from your current versions of plugins (e.g. lazy.nvim [1]) so that you can see if you need to update anything. [1] An example of lazy.nvim plugin update experience: https://user-images.githubusercontent.com/292349/208301737-68fb279c-ba70-43ef-a369-8c3e8367d6b1.png https://user-images.githubusercontent.com/292349/208301737-6...
- lycopodiopsida 4y agoIMO, not a big deal if you have fun while doing so. I still have to finish elden ring and have already played for 105 hours. 50 hours for Vimvarna are nothing and a time well invested :D
- sph 4y agoIndeed, vim is a great text editor, but a mediocre IDE framework (adding Lua on top won't change this fact) Emacs is a great IDE framework, but a mediocre editor (compared to vim keys and modes, and IMO evil only helps somewhat) One day someone will be blessed by the Buddha himself, and will go on to create an Emacs clone running on a Lisp with native and default support for a modal editing system. The whole of humanity will enter nirvana, ending the infinite cycle of reincarnation^Hreinventing the wheel.
- ykonstant 4y agoI stand behind this message 1000%.
- lawn 4y agoWith extensive use of plugins and configuration (especially LSP servers) you can get very close to an IDE experience, and many people including me use it to navigate commercial codebases just fine. It depends a bit on what language you use, but people who claim (neo)vim is a bad IDE are IMO wrong.
- cocochanel 4y agoI moved to WebStorm/IntelliJ after many years of working in vim and neovim, fully loaded (LSPs, telescope, nvim-dap, coc.nvim, 20 other plugins), and I find JetBrains IDEs to be just much more intelligent, come in a single well integrated package including impeccable git integration, refactoring capabilities, and debugging experience (with the last two being particularly important and vastly superior to neovim). Vim is just not worth it IMO unless it is for fun, I used it mostly because it was fast to open, made me feel in control and I enjoyed fiddling with and configuring software to my own liking.