1. 19
  1.  

  2. 11

    I didn’t count them all, but I estimate there are around 80 vim plugins listed. (!)

    Is it just me, or is that a sort of madness? I use vim daily, and I’m sure a great number of these make some things easier. But I feel like if my environment looked anything like that, I would spend more time tweaking my tools than actually getting any work done.

    1. 4

      While it may seem like a lot of plugins, there are a lot of plugins that are for specific things. I’ve spent a lot of hours tweaking my rc file, but once you get it to a place where you like it, you don’t feel a need to change it anymore. I’m a big proponent to customizing your tools to suit your work habit, rather than working around the tool itself.

      One may think that there are a lot of keybindings, but I generally find that I don’t add all of the shortcuts all at once. You slowly build up your config file to suit your needs, and you learn the keybindings as you slowly add plugins. Thus you now have a tool that suits your needs, and you don’t restrict yourself.

      1. 3

        It’s not just you. 80 plugins seems excessive.

        I use the taglist plugins for vim, and otherwise tweaked my .vimrc to handle a handful of keyboard shortcuts (my .vimrc is a little over 100 lines, nothing too crazy). I used an indent guides plugin for a little while but it was inconsistent in its behavior, so I ultimately disabled it.

        1. 2

          I wouldn’t even be able to remember them all, let alone their key bindings. I use maybe 15 plugins and I still forget what’s available to me.

          1. 1

            Your estimation was pretty good: 73.

            1. 1

              I checked and I have 42 enabled at present, with another 15 or so commented out in a “maybe try this one day” way.

              80 definitely seems on the high side to me, but I suppose I can imagine getting there. Worth noting that some of these are things like support for specific filetypes, colorschemes, and helpers for other plugins.

              1. 1

                I have a lot of vim plugins, not 80, but probably around 30? And I don’t think I’ve touched or tweaked any of them except Syntastic, and of course setting up a few mappings.

              2. 9
                • Alternate - check out vim-projectionist which is that, but on steroids (some configuration will be needed though)
                • You use 3 different themes at once?
                • Conflicted and Fugitive are a little bit overlapping, don’t you think (:Gdiffsplit! in Fugitive does what you want)
                • DiffEnchanced seems to be unnecessary since Vim 8.2 as it support set diffopt+=algorithm:patience from xdiff library as a built in
                • FZF and CtrlP? What for?
                • Instead of Grepper you can just set grepprg to needed value
                • Listtoggle seems weird as a whole new plugin just for 4 simple mappings
                • Locate and Qlist seems to overlap, don’t You think?
                • Doesn’t Commentary and NERDcommenter overlap/conflict?
                • “Terminal vim doesn’t have the * or + registers that are used for copying and pasting to/from system clipboard” is a lie, you just need to install Vim with X support and it will work

                In general I would suggest you to Marie Kondo your plugin list as a lot of them seem to overlap.

                1. 6

                  Every editor expands until it becomes Emacs…

                  1. 5

                    I’m always surprised when people on the one hand promote vim as “the same everywhere” while there are those who customize it to no end.

                    1. 5

                      no, vi is the same everywhere, and that’s why you learn vi. This may often lead to your having a tweaked-up vim as your coding editor of choice… but you still know vi :)

                      1. 1

                        Yes! But it’s still sad to see that when I ask a vim user to use vi, that they are too often surprised by the limitations they face, because they just never learned it.

                      2. 3

                        That’s why 60% of most people’s repos are dotfiles ;)

                        1. 3

                          I find a lot of the arguments people set out for Vim a bit lacking in substance. Without meaning to start an editor-war like situation, I think Emacsers at least seem open to admit that their editor is actually kind of a pile of garbage:

                          With emacs and gnus, one must serve a long penance, after which shit still doesn’t quite work but you’ve achieved a deep symbiosis with your editor/mailer and can tailor it to your very precise needs. [0]

                          Having said that, I think that Neovim is really changing things up in terms of the camps the two editors hold, and generally I don’t find Vim users with massive configurations to be the ones claiming that their editor is the same everywhere.

                          0: https://old.reddit.com/r/emacs/comments/ebite6/mu4e_vs_gnus_vs_notmuch_for_emacs_email/fb59lem/

                          1. 4

                            I don’t find Vim users with massive configurations to be the ones claiming that their editor is the same everywhere

                            Oh no, I wasn’t implying that these were the same people, just that they coexist, seemingly ignoring one-another.

                            1. 1

                              Ah, guess I misread your comment. My mistake!

                          2. 2

                            I don’t think this is a bad thing. I use (neo)vim as my daily code editor, mostly because I’m very used to vim keybindings. But I’ve always thought it was cool in principle that emacs is, if not an operating system as the joke goes, a very general and extendable text manipulation environment. I think it would be good for vim if it had as much of a cultural expectation of being able to massively modify the editor as emacs does, and I’m pleased to see neovim going in this direction to some degree.

                            1. 2

                              Well, at least a heavily laden vim won’t use Emacs’ terrible key bindings.

                              1. 4

                                Real talk: in vim, can one access some functionality by searching for its name and executing it?

                                For example, I have a simple function in my .emacs that allows me to enter a formatted timestamp at point. I’ve never bothered to bind that to a key sequence, instead I call it with M-x <my function name>.

                                The ability to seamlessly search for functionality within Emacs has really helped me explore the system.

                                1. 2

                                  Vim has command line mode where you have tab completion and can run ex commands, if that’s what you mean?

                                  1. 2

                                    My command is called insert-meta-update-date and prints “meta-updated: Tuesday, 2020-03-03” at point (it’s for my blog). I don’t have to remember more than hit M-x inse and then tab-complete. Emacs has even dynamically added the suggested M-x i-m-u RET to my buffer when I run it…

                                    1. 5

                                      Yes, of course. As a trivial example you can define a command like :command InsertMetaUpdateDate :r !date which will insert the date into the buffer, and then hit :Ins. You can tab complete if you like, but you don’t even have to, if nothing else matches the start it’ll run the InsertMetaUpdateDate which puts the date in the file.

                            2. 2

                              My new favorite Neovim plugin (Neovim-only, sorry) is nvim-lsp, a set of pre-made configs for Neovim’s new built-in language server protocol client implementation. I can get full IDE features in Neovim with a fraction of the footprint used by heavy extensions such as CoC.nvim.

                              1. 1

                                When he writes \e, does he mean <leader>e or literally \e?

                                1. 1

                                  Probably <leader> but in reality there is not that much difference, as <leader> is just placeholder, not “magic key”.

                                  1. 2

                                    My leader key is spacebar, but I also use \ as a prefix key. Like \\ is :wa<cr>. So it changes what this would conflict with.

                                    1. 1

                                      There is a massive difference for me. My leader is the comma.

                                      1. 1

                                        I mean that the <leader> is expanded in place, not as a “magic” key. So this:

                                        let &leader = "\"
                                        nnoremap <leader>a A
                                        ler &leader = ","
                                        nnoremap <leader>a I
                                        

                                        Will create 2 separate mappings \a and ,a that do not conflict with each other. That is why I do not use <leader> and instead use “leader value” directly, so I would write:

                                        nnoremap \a A
                                        nnoremap ,a I
                                        
                                  2. 1

                                    Far would have come in handy earlier today, but I was eventually able to solve the problem at hand with rg -l <pattern> | xargs -i@ sed “s///g” @. Still, I'm gonna add it to my own init.vim`, and see how I like it. Commentary and Bufexplorer also seem like they might be useful to me.

                                    1. 1

                                      ctrl-p, vim-sneak and vim-ack (which I use git grep instead) are all I need.