Despite me not hacking it like crazy, I still think it really shines as an editor; Vim macros were sort of life-changing to me once they clicked for me. I also just think that modal editing is superior once you get past the initial learning curve.
I use VIM for almost all basic editing. Its muscle memory.
But for code editing, I generally end up on VSCode because it seems to have better language support. I've spent a fair amount of time with configuring VIM trying to get where I feel it needs to be. But whenever I shift to a new stack, it always seems to take an investment of time and effort to get VIM set where it's better than VSCode.
One notable exception is Go with its [vim-go](https://github.com/fatih/vim-go) plugin, which feels very mature to me as someone new to the language.
I would love to have this functionality with just
brew install ts-vim
And just be done with it.[1]: https://marketplace.visualstudio.com/items?itemName=asvetlia...
BTW, your main point about using vim is emacs greatest strength.
(People keep telling me I'd love emacs, and I have nothing against it, I just happened to learn vim first.)
Have you got any suggestions? The number of people that recommend it makes me sure that there's value to be had there, but it's never really become a habit for me.
I've been using vim and before that other vi clones or actual vi as one of my main editors for 40 years, and my .vimrc is 60 lines.
20 of those are to automatically decrypt on read and encrypt on write .gpg or .asc files, which I copied from somewhere 20-25 years ago and haven't actually used in 15+ years, leaving only 40 lines I actually care about.
Which means your Vim experience now has some risk of rot. Once and awhile my configurations/extensions rot and I have to go and update myself as to what happened in the ecosystem, or what is interacting with what. One day I decided I'm too tired and switched to VSC.
Also the author failed to talk about the #1 killer feature of VSC, the reason for its meteoric rise in popularity — intellisense.
LSP is truly one of those "rising tide lifting all boats" projects.
Vim suffers a bit from the design equivalent of tech debt. Much of the defaults and common behaviors were created based on the limits of software/ hardware 30+ years ago. Those limits still affect current design.
> Also the author failed to talk about the #1 killer feature of VSC, the reason for its meteoric rise in popularity — intellisense.
Given a fairly small amount of configuration, you can get autocomplete which is nearly as good as Intellisense in VSCode. For Typescript anyhow, the autocompletion comes from the same source background process.
Vimscript is weird. Sometimes the answer to "how to do this" comes in the form of "just install this package manager...". Stop. No.
Sure, I'm ok with adding a couple of lines to vimrc, copying some files, but don't push it.
I get much more out of the box from Vscode, PyCharm, etc. Why can't it be the same with vim?
If you take a step back and look at software development as a whole then IDEs like VSCode and PyCharm take the top down approach.
Whereas Vim is one of the solutions which do it bottom up.
With both approaches you can theoretically arrive at the same functionality but in reality, there will always be something missing.
Some people prefer the bottom up approach as that gives them the illusion of knowing their tool completely whereas people with the top down preference think everything is curated for them.
Over time, both kinds of people notice this isn't quite true.
So no, vim shines and it's pretty bright
600 lines seems pretty long to me. I don't even know what I would put in a .vimrc file. Obviously I don't use it enough to even have annoyances.
The nice thing about have no config is that I can hop into vim on any computer or server anywhere and be able to use the editor. I don't have to worry about having muscle memory of using keybindings/aliases that don't exist.
That's the way to go. Unfortunately, most humans are fallible and I had to add a single line:
inoremap <tab> <esc>I knew a guy that not only had no config, he didn't even use syntax highlighting, which I can't live without.
All of that power and configurability is there for a reason. My config is about 250 lines; a lot of that is just to have Vim operate like it's 2020 and not the 90's.
I'm not a C programmer, so I don't want /usr/include in my search path, which it is by default.
I want to ignore things I have no intention to edit, so I have
set wildignore=*~,.DS_Store,.git,.hg,.svn,*.bmp,*.gif,*.gz,*.ico,*.jpeg,*.jpg,*.mp4,*.pdf,*.png,*.tar,*.webp,*.xz
Gotta have relative numbering while showing the absolute number for the current line: set number
set relativenumber
I write a lot of HTML; having Emmet (see https://medium.com/vim-drops/be-a-html-ninja-with-emmet-for-...) enables me to write div#page>div.logo+ul#navigation>li*5>a <C-y>,
and get <div id="page">
<div class="logo"></div>
<ul id="navigation">
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
Saves lots of time and keystrokes.From .vimrc to .vim: https://vimways.org/2018/from-vimrc-to-vim/
Fabulous article that explains runtime files and why many modifications to most people's .vimrc should be in ~/.vim/.vimrc and other other runtime directories.
Lots of Vim users talk about using a minimal config because they need to access random machines that won't have their custom setup.
Or that it's some kind of badge of honor to not have any plugins, even if they could save you a ton of time and keystrokes.
Let's not forget: 1. Vim is great at remote editing, so you can use your config when updating files on servers, etc.
2. You could put your ~/.vim/.vimrc in a repo and install it anywhere you need it in like 5 minutes.
3. You could also rsync your local config to a machine if you needed to.
Of course I can use barebones Vim on some random server, but sometimes you need all the goodies with you.
The video Your Vim is only for you: (https://www.youtube.com/watch?v=6LPBpmkQdw8) reminds us that our Vim is just for us and if that means tricking it out so that it becomes our own custom editor, then so be it.
I've been using VIM for over a decade and currently my customized config consists of a half a dozen tweaks, such as YAML-specific settings stashed in ./.vim/after.
I use VIM on and off, but I wanted to post the above because I think it exemplifies who might like using VIM.
VIM is ideal for people who find it worthwhile to spend the time building their configuration out. VIM is the productivity tool that gets better as you put the time and effort into building it out. If you aren't the kind of person who wants to put that time and effort in, it is still decent as a basic editor, but it doesn't really shine.