Hello! This is my neovim configuration.
I'm not too fond of having a "big" dotfiles repository because the two main things I ever felt the need to manage and version control were my neovim configuration and my zsh configuration. It seemed to me like it would be a little overkill.
Sometimes I also like things simple, and to me this is a simple way to keep the configuration files decoupled.
Well, you're supposed to clone it inside your $HOME/.config
. This repository
is made to be the whole of your nvim
directory inside .config
.
cd ${XDG_CONFIG_HOME:-$HOME}/.config
git clone https://github.com/mateusmedeiros/nvim.git
Glad I asked (because I'm the one writing this, get it? hahaha... haha... :pensive:). I'm always commiting changes to this repository, so stuff isn't always up-to-date here on the README, but I try to do my best!
Don't worry, though. Since I made the move to neovim and deoplete, stuff got much easier. You still need to do some things, though (besides installing neovim).
gem install neovim
Make sure your neovim has access to the same ruby installation you used to gem install, or else it may not find the ruby binary or find a ruby binary for a version without the gem installed.
pip2 install neovim
pip3 install neovim
The important thing is to install the neovim
package with the python version (2 or
3) you have in your system (or both).
The names of the binaries may vary. If you need to set unconventional paths for the python installations in which you installed the packages, take a look at the neovim provider docs.
This is only needed if you intend to use Rust completion with this configuration.
cargo install racer
You also need the rust source files. If you used rustup to install rust in your computer, you can do that with the following command:
rustup component add rust-src
This is only needed if you intend to use neomake lint within javascript files.
npm install -g eslint eslint_d babel-eslint eslint-plugin-react
eslint_d
keeps an instance of eslint runnning on the background, which gives an increase in speed of like, a hundrillion times.babel-eslint
andeslint-plugin-react
are more specific to my use cases, so you may leave them out if you don't intend to use babel and/or jsx.
This is only needed if you intend to use neomake lint within ruby files.
gem install rubocop
Make sure neovim has access to that ruby installation. See Install ruby bindings
If you intend to use elixir linting, a few things must be set up.
Dogma:
git clone https://github.com/lpil/dogma
cd dogma
mix deps.get
mix archive.build
mix archive.install
Bunt:
git clone https://github.com/rrrene/bunt
cd bunt
mix archive.build
mix archive.install
Credo:
git clone https://github.com/rrrene/credo
cd credo
mix deps.get
mix archive.build
mix archive.install
nvim +PlugInstall
These files are very personal, so I'm guessing you'll probably take a look at it as a reference to copy some parts or see how I organized stuff. Maybe even fork and modify, but probably not contribute back to the repo itself because it's all very subjective and stuff.
That's ok! But if you find a typo, or some other error, feel free to open an issue, a Pull Request, anything.
I'm not sure if licensing even applies to configuration files, but if it does, consider this MIT.