-
Notifications
You must be signed in to change notification settings - Fork 282
VimL configs
At the moment, this is brainstorming - but we're open to feedback.
We believe that the work Microsoft has done in VSCode, and the adoption of their plugin model / ecosystem, has brought a set of very high quality plugins for working with languages. However, we recognize that there is some functionality in Vim that simply isn't captured or part of that effort.
The extent of VimL / init.vim / vimrc support is still TBD - but I'd like to collect a set of configurations for us to test against once we get to that point.
Ideally - we could seamlessly support both init.vim
and VSCode configuration files (even together!). The tricky aspect is that Onivim 2 owns some pieces of the editor stack that traditionally Vim would own - like the view / windowing layer. Supporting the breadth of configuration options and, importantly, ensuring a high-quality experience means a lot of testing.
The challenge is figuring out the right set of features to support to ensure a high-quality bar. This is still an open issue; but we're open to feedback and ideas.
Some things we for-sure want to support:
- Key bindings (
map
family) - Abbreviations (
abbrev
family) - Custom textobjects
- Vim settings (relativenumber, etc) - these should integrate with the UI.
We may at some point expose an 'experimental-use-at-your-own-risk' configuration setting to bring in init.vim
, as well.
Configs for us to track compatibility - feel free to add yours!
- https://github.com/NullVoxPopuli/dotfiles/blob/master/home/.config/nvim/init.vim
- https://github.com/CrossR/dotfiles/tree/master/neovim/.config/nvim
- https://github.com/MikaAK/dotfiles/blob/master/nvim/init.vim
- https://github.com/tweetjay/dotfiles/blob/master/vim/vimrc
- https://github.com/ELLIOTTCABLE/System/blob/master/Dotfiles/vimrc
- https://bitbucket.org/JozephS/dotfiles/src/master/.config/nvim/init.vim
- https://github.com/bangarangler/stow-dotfiles
- https://github.com/nwaywood/dotfiles/blob/master/config/nvim/init.vim
- https://github.com/kstevens715/dot-files/blob/master/init.vim
- https://github.com/benjie/dotfiles/blob/master/init.vim
- https://github.com/avimmer/dotvim/blob/master/init.vim
- https://github.com/znculee/dotfiles/blob/master/vim/.vimrc
- https://github.com/ppwwyyxx/dotvim/blob/master/vimrc
- https://gitlab.com/goetzc/.dotfiles/-/blob/main/nvim/.config/nvim/plugin/00-general.vim
- https://github.com/harshai/dotfiles/blob/master/config/vim/init.vim
- https://github.com/praveendhawan/dotfiles/blob/master/.config/nvim/init.vim
Even though we are implementing first-class support for the VSCode Extension Host Protocol as a priority, the fact remains that there are some capabilities of Vim that aren't expressed in that protocol.
Some target plugins we'd like to support:
- Text object plugins - targets.vim, surround.vim, vim-sandwich
- vim-test: https://github.com/vim-test/vim-test
And then some plugins we likely won't target supporting:
- ALE - the linter / LSP functionality would be handled by Onivim 2's VSCode extension host integration.
- coc.nvim - the LSP support would be handled by Onivim 2's VSCode extension host integration.
- Vim colorschemes (we'll support VSCode Color Themes instead, which also specify theming UI elements)
- Vim syntax highlighting (we'll support Textmate Themes and Tree-Sitter)
If there are users or VimL developers interested in leveraging some of the VSCode Extension Protocol support from VimL plugins, we could consider adding extensions to support this.
Let us know if you have ideas by opening an issue - your feedback will help shape what we end up building!