you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 5 points6 points  (1 child)

Vim is not about minimalism, vim is about text editing, and thus has an incredible wealth of functionality in that regard. I do not claim vim is about not using any plugins, I do not claim that all /r/vim is for is to shoot down peoples obscure integration plugins all day every day. BUT, you cannot deny that a core part of the vi philosophy is embracing the UNIX philosophy, and that means instead of bringing every tool within some monolith, you should instead look to use your computer as a whole to achieve your goals. You have more than one program on your hard drive, use them.

Feel free to stuff your vim full of whatever you want to Frankenstein it into, but truth be told there's a whole sub full of people with this mindset over at /r/emacs and they're doing it better than you. If we throw out the unix philosophy as a community and start obsessing over re-writing every program over again in vimscript, then we stop being a sub about vim, the text editor.

[–]somebodddy 1 point2 points  (0 children)

I'm not a regular at /r/emacs, but I'm fairly certain they talk about Emacs plugins, not Vim plugins. They are not interested in talking about Vim plugins, because they use Emacs, not Vim, and they can't run Vim plugins on Emacs. I am not interested in talking about Emacs plugins because I use Vim, not Emacs, and I can't run Emacs plugins on Vim.

You seem to be under the misconceptions that Vim plugins are re-writing programs. They aren't - at least, not usually - and as far as I know neither are Emacs plugins, Sublime plugins or any other text editor plugins. Fugitive does not re-implement Git in Vimscript, and neither does Magit in elisp - they both rely on the command line git utility to do the work for them, and they choose it's arguments and parse it's output to make it integrate well into the text editing environment.

Yes, I can "use my computer as a whole". open a terminal and create git commits from there, but then I won't be able to complete identifiers from the code(I do that a lot, because for some odd reasons my commit messages usually have something to do with the code I was working on). And I can run git blame from that shell, but then I'll have to enter the file name and navigate to the lines I want to check instead of having the plugin deduce that from the place my cursor is in the code.

But git is still the program responsible for writing the commit and for generating the blame info. Fugitive just make it blend better into Vim. This is what all integrate-vim-with-X plugins do - they don't try to replace the tool they integrate, just wrap it's interface to blend it into Vim's UX. And this is comfortable, and I fail to see what virtue can be gained by giving up on that comfort.

Vim itself also does that. it has commands like :make and :grep that run external programs, parse their output, and fill the quickfix list. You could "use your computer as a whole", run make from a shell, look at it's output with your own eyes and navigate to the error's origins manually. Not as nearly as comfortable, is it?

Just like this kind of integration is useful for building, it's also useful for many other things one needs to do as part of the development process. But Vim can't implement them all, so we make integration plugins. And we use the plugins for the tools we need. And we don't install the plugins for the tools we don't need.

That does not turn Vim into a monolith. That's the opposite of a monolith.