FS#41453 - vim plugins: Should depend on vim-runtime rather than vim

Attached to Project: Arch Linux
Opened by sekret (sekret) - Monday, 04 August 2014, 07:53 GMT
Last edited by Jelle van der Waa (jelly) - Thursday, 27 July 2023, 18:39 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Levente Polyak (anthraxx)
Morten Linderud (Foxboron)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 6
Private No

Details

Description:

I've recently switched to neovim, just to see if it feels better than vim. So I wanted to get rid of vim, because I didn't need it anymore. But this wasn't possible, because e.g. latexsuite, which I use, depends on vim, although it's enough to have vim-runtime and one of the "vims" installed.

So I think it would be better to make all plugins, which are shown here https://www.archlinux.org/packages/extra/x86_64/vim/ as dependent on vim, to depend on vim-runtime instead.
This task depends upon

Closed by  Jelle van der Waa (jelly)
Thursday, 27 July 2023, 18:39 GMT
Reason for closing:  Fixed
Additional comments about closing:  https://archlinux.org/todo/make-vim-plug ins-depend-on-vim-plugin-runtime-so-neov im-or-vim-can-be-used/
Comment by Doug Newgard (Scimmia) - Monday, 04 August 2014, 13:59 GMT
This would probably require a to-do list. Assigning to the VIM maintainer to get his opinion/help here.
Comment by Thomas Dziedzic (tomd123) - Monday, 04 August 2014, 14:06 GMT
Why not do the same thing as what gvim does which is, make neovim provide vim?

That would avoid a mass rebuild and would make every aur vim plugin compatible with neovim.
Comment by sekret (sekret) - Monday, 04 August 2014, 15:51 GMT
You are right, this would solve the problem. But it's not as clean as my solution imho. The gvim package actually includes /usr/bin/vim, which really is vim. If neovim is marked to provide vim, there should be /usr/bin/vim included in it as well, which is not the case by default. Of course this can be fixed by a symlink, but then /usr/bin/vim wouldn't really be vim, but neovim. I'm not sure about how much the differences matter, I'm not that much of a power user.

I'm the last person who wants to enforce a big rebuild of packages. If I had the rights, I'd do it myself, of course. I just wanted to point out that I think this would be a clean implemention. Isn't this one of the reasons vim-runtime was created for in the first place? Frankly I can't remember it too well.

What I'll do now is wait for your decision and I can inform the neovim-git maintainer in case there's changes to be done in his package.
Comment by Miguel de Val-Borro (migueldvb) - Wednesday, 02 December 2015, 18:03 GMT
The neovim package does not have an extra runtime files package and it does not depend on vim-runtime so I think that
making all vim plugins depend on vim-runtime does not help. The best option would to give a dependency for every plugin
on either 'vim' or 'neovim' but that is not possible currently, so I would go with making neovim provide vim which is good enough
since backwards compatibility is a high priority at the moment for neovim developers.
Comment by Levente Polyak (anthraxx) - Saturday, 04 April 2020, 13:57 GMT
neovim can not provide vim in a technically correct way, one of the main reasons for the fork was to remove certain functionality and also have behavior change. While they try to keep plugin API somehow compatible to now screw too much over plugin devs, its still not the same thing.

Instead we decided with Sven to have a shared virtual provides 'vim-plugin-runtime' that both packages provide and plugins can depend on. This is a quite KISS solution while still not be technically wrong about neovim providing vim.
Comment by Eli Schwartz (eschwartz) - Thursday, 09 July 2020, 00:57 GMT
Since this is now fixed from the vim/neovim side, we should be able to rebuild packages which support both, right?

Does anyone have a list of packages they know work well with both neovim and vim, which should be switched?
Comment by Robert Cegliński (codicodi) - Friday, 31 July 2020, 12:28 GMT
@Eli
I checked all packages in vim-plugins group.

Work with both vim & neovim:
vim-airline{,-themes}
vim-ale
vim-align
vim-ansible
vim-bufexplorer
vim-coverage-highlight
vim-csound
vim-ctrlp
vim-easymotion
vim-editorconfig
vim-fugitive
vim-gitgutter
vim-grammalecte
vim-indent-object
vim-jad
vim-jedi
vim-molokai
vim-nerdcommenter
vim-nerdtree
vim-seti
vim-supertab
vim-surround
vim-syntastic
vim-tabularize
vim-tagbar
vim-ultisnips
vim-vital

Works only in vim:
vim-latexsuite

Doesn't seem to work at all (?):
vim-pastie


There is also another issue - vim has a pacman hook that updates help tags for installed plugins. If using plugins with neovim (without vim installed) is going to be officially supported, maybe a similar hook should be added to neovim? That would potentially update help tags twice but it shouldn't be an issue.

Edit:
vim-spell-* dictionaries work fine with neovim as well.
Comment by Chih-Hsuan Yen (yan12125) - Thursday, 21 April 2022, 03:39 GMT
Is there further progress? It seems that the current plan is a todo list for rebuilding vim-* plugins to depend on vim-plugin-runtime instead of vim if applicable. If that sounds good, I can help on creating a todo list with the following description.

```
This is a TODO list to allow using vim-* plugin packages with community/neovim without installing extra/vim. To achieve that, vim-* plugin packages should depend on the virtual package vim-plugin-runtime instead of vim [1]. Please check whether a plugin works with both vim and neovim or not, and update depends= in PKGBUILD and rebuild if applicable. If a plugin works with vim but not neovim, the corresponding package can be marked as finished without any change. Updated packages can go directly to stable repositories.

[1] https://bugs.archlinux.org/task/41453
```

Loading...