Skip to content

There are many vimrc's, but this one's mine.

Notifications You must be signed in to change notification settings

davelens/dotvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.vim/

This is my vimrc. There are many like it, but this one is mine. My vimrc is my best friend. It is my life. I must master it as I must master my life. Without me, my vimrc is useless. Without my vimrc, I am useless. Feel free to browse my configuration, but keep in my mind that

2024: Conversion to Lua

The need to convert my config to Lua finally presented itself in requiring modern plugin support for development in Elixir. The idea is to keep my "old" vimrc as the default until I'm comfortable enough to switch.

In order to keep both versions, I have opted to use a new config namespace for the Lua version (config/dvim). This way I can keep the old vimrc (config/nvim) as a default (for now!).

Installation will attempt to create an executable in ~/.local/bin/dvim. Provided ~/.local/bin is in your path, you can now start Neovim with dvim and it will use the Lua configuration.

When the time will come to switch defaults, I'll probably move the "old" version to something like ~/.local/bin/ovim (for "old vim") and let the Lua version use the default nvim config namespace.

Install

git clone git@github.com:davelens/dotvim.git ~/.dotvim 
cd ~/.dotvim && ./install.sh

Uninstall

cd ~/.dotvim && ./uninstall.sh

Changelog

As of march 2020 I created a separate changelog for my .vimrc which I'll attempt to maintain, in order to explain some of my reasoning to my future self.

Neovim

In september 2019 I made the switch to Neovim with its release of 0.4. Mostly because I was dealing with large files at the time. In Rails, files like i18n files or data logs are so much more responsive in neovim compared to stock Vim.

Thankfully, both Vim and Neovim are mostly backwards compatible, and I try to do the same with my vimrc.

Plugins

Much like yourself, I use a plethora of tpope's plugins, and a handful of others. If you look at my plugin configuration file you'll see I'm a big fan of plugins that do their job with little to no configuration, but enable plenty of experimentation. fzf is a prime example of this.

My plugin manager of choice is vim-plug. Lightweight, with a good DSL.

Autocompletion

Vim

Vim will use YouCompleteMe (YCM for short), a plugin that requires a pre-compiled component. See their installation instructions to get this sorted.

YCM on macos < 10.10

If you're on a version of macos lower than 10.10, chances are that the YCM component failed to compile. I got this fixed with a helpful SO answer.

Neovim

With the advent of Microsoft's LSP I've been on the fence to set one up for Ruby and JavaScript, though I haven't taken the time to do this properly yet.

Neovim will use coc.nvim for now. I'm not entirely convinced of its merit yet (I get the sense it's too bloated for my tastes), but it sports easy configuration. The alternative would be to use ALE along with Deoplete + LanguageClient-neovim. As for an LSP server for Ruby, I've gotten the best results so far with Solargraph.

Statusline

If you're on macos, my plugin configuration file will attempt to automatically download a patched Droid Sans Mono font that includes Powerline icons. If your statusline shows questionmarks instead of specific icons, you'll need to configure your terminal to use a Powerline font as the non-ASCII font.

If you don't wish to make use of the fancy powerline icons, comment out the following line in configurations.vim.

let g:airline_powerline_fonts = 1

About

There are many vimrc's, but this one's mine.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published