I still use vim for small stuff but for navigating commercial codebases I can’t imagine not using a fully fledged IDE.
I still use vim for small stuff but for navigating commercial codebases I can’t imagine not using a fully fledged IDE.
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 [2] Easily is relative. IMO each little customization is quick, but you'll end up customizing hundreds of things over time.
This sounds super-useful. Do you mind sharing how you achieved this?
For vim: https://github.com/wellle/context.vim
For neovim (much higher performance in my experience): 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.
It's called "sticky scroll". It's a relatively new feature of VS Code.
https://code.visualstudio.com/updates/v1_70#_editor-sticky-s...
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 ;)
``` -- Move cursor to start/end of line vim.keymap.set({"n", "v"}, "H", "g^") vim.keymap.set({"n", "v"}, "L", "g$") ```
I just finished refactoring and dusting off my config with a structure similar to this video https://www.youtube.com/watch?v=w7i4amO_zaE
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.
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.
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
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-6...
It depends a bit on what language you use, but people who claim (neo)vim is a bad IDE are IMO wrong.