Follow

Vim: avoid plugins. Don't turn it into an IDE. Unix is your IDE and Vim is your editor.

Of my plugins, the only ones which don't add more language support are:

Fugitive, exclusively for :Gblame

Ctrl-P

vim-surround

editorconfig

hilinktrace, which helps with designing/modifying color schemes

@peregrine @sir and use ctrl-z and fg, idk why people keep quitting their session to use the shell!

@brandon eh not really, I feel like a lot of what NeoVim does is in service of the Vim-as-an-IDE goal

@sir @brandon yeah, neovim's recent developments include a built-in LSP-client, treesitter support (for better syntax highlighting and symbol nav), and Lua extensibility.

TBF I like "ide" features such as symbol lookup/navigation (which Vim already has) and I like autocomplete and being able to look up the signature/doc comments for the current item (man.vim or LSP). My favorite neovim plugins build on these; FZF.vim just gives fuzzy search to symbols/files/buffers and navigates your cursor to the result, and the LSP/treesitter can add completion items. This gives me the best IDE features without reducing startup speed (<800ms) or battery life.

That being said, when I want to "just edit" without fancy features I use vim, not nvim.

@sir do you use it like Acme but with a keyboard?

@sir so, it can't do the same actions or do you just not use them? thinking of stuff like Edit |pipe, or plumbing (in the Plan 9 ports version), or sending things to a terminal window.

i only know the basic editing actions in Vim plus i played around with YCM a long time ago, so i really have no idea how well these work in it. but these are what i think of when i think of a "the OS is your IDE" workflow.

@grainloom when I say "the OS is my IDE", I don't mean integrations between vim and my OS. I mean getting out of vim and using my shell.

@sir My list:

- bracketed-paste

- camel-case-motion

- Fugitive, exclusively for :Gdiff, which in turn is exclusively for "revert this hunk".

I can't help feeling Fugitive is a violation of our rule.

I used to rely on signify as well, but it has now been 'depackaged': mastodon.social/@akkartik/1039. One day I'll do the same for Fugitive.

@sir

> Vim: avoid plugins. Don't turn it into an IDE. Unix is your IDE and Vim is your editor.
> Of my plugins, the only ones which don't add more language support are:
> Fugitive, exclusively for :Gblame
> Ctrl-P
> vim-surround
> editorconfig
> hilinktrace, which helps with designing/modifying color schemes

Strong agree, though I'd sub in fzf for Ctrl-P. Oh, and add vim commentary, but I almost feel like it and vim-surround don't count – Tim Pope has a gift for writing native-seeming plugins

@sir This is why I'm not really happy with vim and periodically I look at other vi-inspired editors, but up to now I haven't found one with all of the vim-specific features I use most:

* utf-8 support
* syntax highlighting
* help maintaining indentation (here vim's syntax based autoindent is nice, but enter keeps the same intentation level of the previous line would be just fine)

folds are another thing that I use a lot, but I guess I could live without them.

also, no. mouse. support. inside. the. editor. especially. not. active. by. default.

@sir
I appreciate this about #kakoune . It's very conservative in core features and encourages external tooling via pipes and commands. I also find the controls to be an improvement over #vim

@sir nah, I want an ide

I like it that I can pull up docs, go to definition, have a linter for the language I'm working on and correct spelling etc.

Just use the plugins to get what you are looking for.
@sir and yes some of that is built into vim, some can be augmented though

@reto you can have all of those things in your shell, and bonus: rig them up to your CI or write scripts for them

@sir I know, but I don't want to context switch to a new terminal, repeat myself by writing the thing I want the docs of (or the definitions). I can simply hit "K" and get the whole docstring of any function I'm hovering over.

Grep is not adequate in all situations, you really want something that is language aware, hence goto-definition is a lifesaver.

ymmv and that's fine, but there are good reasons that people want to have IDE like functionality

@reto This is an old debate that doesn't bear rehashing. Certainly there's room for both sides. Vim and IDEs are both good. But *trying to turn Vim into an IDE* is not as good as either. You lose the snappy responsiveness of Vim and the seamless UX of IDEs. And too many plugins destabilize Vim.

Also, one correction: nobody uses grep to jump to definitions. We Unix hands use crags, which Vim integrates with out of the box.

@sir

@akkartik

>you lose the snappy responsiveness of Vim and the seamless UX of IDEs. And too many plugins destabilize Vim.

No?

I'm running a bunch of plugins for various things and vim is not islower, certainly not in a way that's noticeable.

just take care to use plugins that are well made (tpope comes to mind) and not some random crap

@sir Great talk about the topic:

How to Do 90% of What Plugins Do (With Just Vim)
youtube.com/watch?v=XA2WjJbmmo

#vim

@norb @sir indeed a great talk! implemented several of his tips and IMHO it is the way to go!

@sir Does vim support variable width fonts yet?

@sir I dunno being able to see linter errors when saving and opening files as well as being able to jump to relevant unit tests are good features imo

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!