DISCLAIMER: The project has been ARCHIVED since a similar project (AstroNvim) already exists! The project was started before the author was aware about AstroNvim's existence.
If you've used Vim even briefly before, you would know configuring the editor to fit your specific development needs is a time-consuming undertaking. But fortunately, there are quite a lot of "Neovim configuration frameworks" out there & Jarvim is one of them as wekk!
But unlike the other alternatives out there, Jarvim attempts to stay out of the way of the developer as much as possible. It'll only provide you with a "bare minimum" set of configurations to give you an IDE-like experience.
Now a "bare minimum" can be interpreted differently based on who you're asking & that's OK too! You can trim out the unecessary configurations (which you feel isn't a necessity) whenever you want to.
That said, following are some core IDE-like features which Jarvim provides & configures automatically for you:
...more such core IDE-like features will be added if/when I come across any. But if you believe I missed out on some core IDE-like feature, let me know about it!
As mentioned earlier, a handful of similar projects already exists - LunarVim, NvChad & so on. These projects provide configurations which are tightly coupled & hence are difficult to customise to suit a user's personalized needs. As such, Jarvim tries to resolve those concerns by stay out of the way of the user's opinion & their needs.
The goals of Jarvim is minimal, simple & unopinionated which means you're in control of how your Neovim experience will be. And Jarvim is nothing more than a helping hand to get you started on that journey!
That said, here are the goals of the project:
Jarvim has been extensively tested & developed on an Unix-like environment. And hence, it's recommended to use Jarvim on a Unix-based system as well. So, if you're a Mac/Linux user then you're good to go! But hard luck for all Windows users out there.
The decision to support only Unix-based systems has been made after genuine
considerations of the lack of good gcc
alternatives on Windows 10/11. Without
gcc
Treesitter willn't work as expected & you'll run into hard-to-debug build
errors.
But on a brighter note, you can now use Windows Subsystem for Linux (WSL) on both Windows 10/11. enabling you to use a Linux environment right within Windows. You can use Jarvim there instead & you'll not face any issues.
That said, before installing Jarvim, please run the following command to check
all dependencies of the project exists & is available on PATH
in your system:
curl -fsSL https://tiny.one/check-jarvim-dependencies | bash
Once you performed a customary check for all the necessary dependencies, its time to install Jarvim now.
Jarvim has been kept easy-to-install with an intention which means you only need
to invoke a single curl
command & you're all set! As such the following
command will download the Jarvim configurations to your system, install the
necessary plugins & configure the editor as specified!
curl -fsSL https://tiny.one/install-jarvim | bash
Yes, it's that simple to install!
Please bear in mind, Jarvim is nowhere production-ready! As Neovim develops, so will Jarvim. For example, as the Neovim core devs are in talks for pushing a major refactor of the LSP API. And chances are, in the near future it might be easier to download & setup individual server with much more ease.
The upcoming Neovim v0.7 will also bring new features & major changes to the
vim
"standard library" as well. For example, you might now be able to define
Autocommands with Lua. And there'll be a convenient function to setup keymaps as
well! Whenever these features & core changes are introduced to production on the
master
branch, Jarvim will be updated accordingly.
And hence, use Jarvim if stability isn't a concern for you!
That said, the following features (or tasks) are either complete/WIP:
package.nvim
because of
its popularity).git
.... the list isn't complete & will be updated as & when I come up with more ideas!
Jarvim stands on the shoulders of the giants within the Neovim community. Without their work & inspiration, Jarvim would've never seen the light of the day. So, if you found Jarvim helpful, do take some time out & check out those projects as well.
Jarvim started out as personal requirement but there's only so much progress a single person can make for the project. Hence, any sort of support & contributions to the project are heartily welcomed! And here's how you can contribute and/or support the project:
And for the interested contributors (and/or maintainers) out there, please give the CONTRIBUTION guidelines a thorough read before sending a PR or two.
All the source code developed in this project are licensed under the T&Cs of the MIT license unless otherwise noted. So, you're free to copy & distribute it as you wish but with due credit & acknowledgement. For more information, refer to the LICENSE.