Competition is good and I'm glad we're having it.
I'd say that for (Neo)Vim, which is a mature project with a clear design, the BDFL approach is ok but there are risks, illustrated by the half decade where Vim stagnated. Neovim has a less risky approach to project management, I'd say.
Of course, we need to revisit this topic in a decade or so :-)
ps: I honestly wonder if it's a competition feeling or just a side-induced motivation. Sometimes I look at people online and it revives the desire to do things they do that I couldn't before.
Me either.
If you go back to early stories of Bram, the BDFL, when others tried to add Neovim features to vim. He wasn't onboard. Not to discount all the amazing contributions he has done and his importance. But I just think it is karma.
Here is another hacker news post discussing the backstory: https://news.ycombinator.com/item?id=12481084
Here is a bit of shade tossed on the Neovim project back in 2014 by Bram: https://groups.google.com/forum/m/#!topic/vim_dev/x0BF9Y0Uby...
1. NeoVim made the channel/job feature first, so vim should follow it. 2. Vim's design is broken. 3. Bram should write new features for NeoVim first, why no PR's Bram?? Why no PRs to neovim?
Thiago is clearly an asshole. Sorry but I think Bram was reasonable and polite with his responses. His opinion about NeoVim's version is that it was too complicated, and he was right.
The problem is NeoVim started off on the wrong foot trying to throw away decades of work and then expecting Bram to implement new vim features? Seriously Thiago?
> To show what is possible with popup windows (and because I sometimes get bored fixing bugs), I created a silly game. This uses popup windows that move across the display, text properties to highlight the animals and even sound to make it more fun!
AFAICT, the sanest version of "real" vim that seems turnkey is the version of vim that runs in git bash in the cygwin shell that installs with git extension for windows. Other than that, the VS and VSCode vi emulators do most of what I want and then I'm not tempted to to go down the dark hole of vim extensions.
I wrote Python in Vim for about 15 years before finding python-mode[0] about 4 years ago and I now find it absolutely indispensable.
Just about the only thing that it doesn't do natively is Black[1] (think gofmt for Python) which I started using a few months ago. It's not too hard to run it occasionally on my codebase, but I hope it's added in soon.
python-mode did remove its folding capabilties some time back, but it was easy to use another plugin for that: vim-coiled-snake[2].
Apart from these two plugins, and vim-fugitive[3] for git (another one that is a must-have), I don't use anything else except for the occasional syntax coloring plugin.
[0] https://github.com/python-mode/python-mode
[1] https://black.readthedocs.io/en/stable/
I've found Nerdtree to be most indispensable. Other good ones are pathogen, ctrlp, a.vim, and vim-gitgutter
I've found vim-lsp is probably the best starting point, as you can plug any server you want into it, and have a consistent interface.
https://github.com/prabirshrestha/vim-lsp/wiki/Servers-Pytho...
I just want some basic stuff: autocomplete + indentation will probably achieve 90% of what I want from a Python IDE.
I'm one of the "computing for the apocalypse" people who try and configure things as little as possible, but I'm really attached to linting in Vim, and I use ALE [1] for this. AIUI it's the standard for asynchronous linting; Syntastic is the synchronous version, but the lag is juuuust a little too much for me.
netrw (Vim's included file browser plugin) has a lot of bugs on macOS, so I use NERDtree there, but have been thinking about looking around at nnn, defx, vim-netranger, etc.
Other than that, Vim has a lot of powerful configuration. It's worth looking around and fixing any immediate pain points you have; odds are there's an option that does what you want. Three cheers for mature software!
BTW worth checking https://github.com/justinmk/vim-dirvish as a lightweight alternative to NerdTree or netrw.
But I hate Vim.
It's so fragile. Configuring it is a nightmare. One buggy plugin could cause weird behaviour in the editor, and I'd had a hard time figuring out why.
In a recent incident of this kind, I noticed that the scrolling of syntax highlihted code became horribly slow, and the cause turned out to be the new regex engine of Vim 8.
So I've compiled Vim 7.4 from scratch, and intend on using that version till the end of time. By the way - my plugins are manually installed and I never upgrade them. Ever.
To me, the main advantage of vim over IDE is it's there on any remote server.
What would be a single, simple thing I should do to improve Python coding experience when I login to some remote server? E.g. open .vimrc, put a few lines there, download/install plugin X.
I kicked the tires on vscode and atom and while I liked lots of things about them, it seemed like they were kinda overboard with memory consumption. These things are ultimately running web browsers, right? I'll probably have to give it another look.
[0] https://github.com/VSCodeVim/Vim [1] https://github.com/lunixbochs/actualvim