.o8 o8o
"888 `"'
ooo. .oo. .oo. .ooooo. .oooo888 oooo ooo oooo ooo. .oo. .oo.
`888P"Y88bP"Y88b d88' `88b d88' `888 `88. .8' `888 `888P"Y88bP"Y88b
888 888 888 888 888 888 888 8888888 `88..8' 888 888 888 888
888 888 888 888 888 888 888 `888' 888 888 888 888
o888o o888o o888o `Y8bod8P' `Y8bod88P" `8' o888o o888o o888o o888o
This is my vim config. It started out as spf-13 (Steve Francia's) vimrc. But things got out of hand and spf-13 had to be gutted. Also, I found my vim sessions could get a biiiitt slloooooow.
So in the words of the rogue marine to Nick Cage in "The Rock":
"I'll take pleasure in guttin' you boy!"
It works well for me on my macs and linux, but I've stripped out the windows support (at least for now). mod-vim achieves the same ends as spf-13 in that it installs a set of useful plugins and provides some organisational philosophy to the configuration.
Nothing fancy as yet. Simply clone this project somewhere convenient and create symlinks:
- Edit
path/to/mod-vim/vimrc
settingg:vim_root_dir
to$HOME
- Edit
path/to/mod-vim/vimrc
settingg:mod_root_dir
to$HOME/.vim.d
- Edit
path/to/mod-vim/vimrc
settingg:mod_plugins_dir
to$HOME/.vim/plugins.d
- Edit
path/to/mod-vim/vimrc
settingg:mod_data_dir
to$HOME/.vim
ln -s path/to/mod-vim/vimrc ~/.vimrc
ln -s path/to/mod-vim/vim.d ~/.vim.d
mkdir -p ~/.vim/plugins.d/
- Install vundle. See install details at [https://github.com/VundleVim/Vundle.vim]
cd ~/.vim/plugins.d
git clone [email protected]:VundleVim/Vundle.vim.git
vim +PluginInstall! +qall
I'm now using neovim and, provided you install neovim's python support, this config and its plugins work.
Neovim puts its rc file in a different place to vim. See :help nvim-from-vim and also :help nvim-configuration
The XDG spec
indicates that the default for $XDG_CONFIG_HOME
is $HOME/.config
. neovim will look
for its config at $HOME/.config/nvim
if $XDG_CONFIG_HOME
is not set.
Setup
mkdir -p $XDG_CONFIG_HOME/nvim/plugins.d
cd $XDG_CONFIG_HOME/nvim/plugins.d
git clone [email protected]:VundleVim/Vundle.vim.git
cd ..
ln -s path/to/mod-vim/vim.d mod-vim.d
ln -s path/to/mod-vim/vimrc init.vim
nvim +PluginInstall +qall
This is needed for YouCompleteMe and any other python based plugins you may want to use.
From :help nvim-python
To use Vim Python 2/3 plugins with Nvim, do the following:
For Python 2 plugins, make sure an interpreter for Python 2.6 or 2.7 is available in your
$PATH
, then install theneovim
Python package systemwide:$ sudo pip2 install neovim
or for the current user:
$ pip2 install --user neovim
For Python 3 plugins, make sure an interpreter for Python 3.3 or above is available in your
$PATH
, then install theneovim
Python package systemwide:$ sudo pip3 install neovim
or for the current user:
$ pip3 install --user neovim
g:vim_root_dir <- $HOME for vim, $HOME/.config/nvim for neovim.
| See variable definitions below.
|
|-- init.vim <- If using neovim init.vim will be a symlink to
| this file (mod-vim/vimrc)
|
+-- .vimrc <- If using vim .vimrc will usually be a symlink to this
| file (mod-vim/vimrc).
|
+-- g:mod_root_dir <- The root of our vim config.
| | For vim: this can be $HOME/.vim.d/ which can be a
| | symlink to mod-vim/vim.d/.
| | For neovim: $HOME/.config/nvim/mod-vim.d/ which can
| | also be a symlink to mod-vim/vim.d/.
| |
| +-- conf.d <- contains symlinks to 'parts'. These parts form the
| | active configuration.
| |
| +-- parts.d <- 'parts' fragments of vim config to be sourced by
| | | .vimrc
| | |
| | +-- <*> <- other vim config fragments to be included
| |
| +-- helpers.d <- fragments of viml with functions to assist the
| | loading of the config
| |
| +-- swap.d <- swap file directory
| |
| +-- view.d <- view file directory
| |
| +-- undo.d <- undo file directory
| |
| +-- backup.d <- backup file directory
|
+-- g:mod_data_dir <- Parent dir for files (n)vim creates while editing.
| | May not actually be under g:vim_root_dir. nvim
| | places it under ~/.local/share/nvim/
| |
| +-- swap.d <- swap file directory
| |
| +-- view.d <- view file directory
| |
| +-- undo.d <- undo file directory
| |
| +-- backup.d <- backup file directory
|
+-- g:mod-plugins-dir <- Plugins installed below here.
| | For vim: $HOME/.vim/bundle/ typically.
| | for neovim: $HOME/.config/nvim/plugins.d/
| |
| +-- <plugins>
.vimrc
/init.vim
doesn't contain much. It defines a few symbols to refer to the
directories in .vim.d/
, and it calls a helper function, defined in helpers.d
,
to load the config fragments (parts) linked to from conf.d
.
To be explained.
SPF-13 installs a fairly massive number of plugins, and the functionality of some seem to overlap. I found that you really need to study each plugin and its keybindings to really get the best out of it (surprise).
It dawned on me that it would probably be best to build my own config and install only the plugins that I use. Secondly, I would only install one plugin at a time, set its key bindings, and learn how to make effective use of it.
With that in mind here's what is installed:
- 'VundleVim/Vundle.vim'
- the plugin manager
- 'jefflasslett/positive-reinforcement'
- my own syntax highlighting
- 'scrooloose/nerdtree'
- project tree view
- 'Shougo/vimproc'
- prerequisite for Shuogo's other plugins
- 'ctrlpvim/ctrlp.vim'
- fuzzy finder and lister of files/buffers
- 'tpope/vim-fugitive'
- git wrapper
- 'rking/ag.vim'
- regexp file search
- 'scrooloose/syntastic'
- syntax checker
- 'Twinside/vim-haskellConceal
- replaces peices of haskell syntax with unicode chars
- 'eagletmt/ghcmod-vim'
- calls ghc on modules of haskell code. Provides fantastic guidance.
- 'eagletmt/neco-ghc'
- Autocompletion for Haskell code
- 'Twinside/vim-hoogle'
- Haskell library search
- 'pbrisbin/html-template-syntax'
- Yesod templates
- 'bling/vim-airline'
- Enhanced status line
- 'Valloric/YouCompleteMe'
- Code completion
- 'mattn/emmet-vim'
- HTML editing
- 'groenewege/vim-less'
- Syntax highlighting of Less CSS preprocessor syntax
- 'tpope/vim-rails'
- Rails project navigation and helpers
- 'tpope/vim-bundler'
- "Lightweight bag of goodies for bundler. Works well with rails.vim
- 'slim-template/vim-slim'
- Syntax highlighting for slim templates
- 'kchmck/vim-coffee-script'
- Syntax highlighting for coffeescript files
Just edit the list in vim.d/parts.d/plugins.vim
and run:
vim +PluginInstall! +PluginClean +q
There may also be custom key bindings to alter and other fragments of config to edit.
More to come.