My Vim configuration files
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
after/ftplugin
autoload
config/nvim
ftdetect
ftplugin
spell
.gitignore
.gitmodules
README.md
abbreviations.vim
cheatsheet.md
cheatsheet_regex.md Add example for regex for md titles Apr 24, 2018
gvimrc
install.py
install_osx.sh
keys.vim
my_functions.vim
pluginsrc.vim
update-plugins.sh
vimrc

README.md

Installation

$ curl -s https://raw.githubusercontent.com/charlax/dotvim/master/install.py | python

You should read the script before executing it.

Prerequisites

Install MacVim on Mac Os X

You need Homebrew. This will install vim, neovim, vimr and macvim:

$ ./install_osx.sh

As of writing, the fzf plugins does not work correctly in MacVim. You can use VimR instead (those dotfiles have been tested with it).

Reinstalling

It is a good idea to reinstall MacVim from time to time:

$ brew reinstall macvim

Plugins

I am using vim-plug.

  • Add a plugin by adding a Plug line in vimrc, then add its description below.
  • Update plugins with :PlugUpdate.
  • Upgrade vim-plug from time to time with :PlugUpgrade.
  • Remove a plugin by removing the line, running :PlugClean and removing the description from the README.md. Look for other mentions of the plugin in the repo by using ag.

List of plugins

Check the vimrc for an up-to-date list and description.

  • ALE: Asynchronous Lint Engine
  • auto-pairs: insert or delete brackets, parens, quotes in pair
  • deoplete: asynchronous completion framework
  • deoplete-go: asynchronous Go completion for Neovim
  • Cocoa: a collection of scripts designed to make it easier to develop Cocoa/Objective-C applications.
  • Flake8: runs the currently open file through Flake8, a static syntax and style checker for Python source code.
  • FZF: fuzzy file finder
  • json: JSON highlighting script.
  • JSX: React JSX syntax highlighting and indenting
  • Mako: a collection of scripts for the mako templating engine.
  • nerdtree: a tree explorer plugin.
  • Python-Pep8-Indent a nicer Python indentation style.
  • repeat: enable repeating supported plugin maps with "."
  • rtf-highlight: syntax highlighting to RTF
  • Solarized8: optimized solarized color schemes
  • Stylus: syntax highlighting for stylus.
  • Tagbar: displays tags in a window, ordered by class etc.
  • thrift.vim: syntax highlighting for thrift definition files.
  • ultisnips: snippet engine
  • vim-arduino: compile and deploy Arduino sketches.
  • vim-go: go development plugin
  • vim-jinja2-syntax: an up-to-date jinja2 syntax file
  • vim-less: syntax for LESS (dynamic CSS).
  • vim-multiple-cursors: True Sublime Text style multiple selections for Vim
  • vim-snippets: snippets file for various programming languages.
  • vim-wordmotion: more useful word motions for Vim
  • xmledit: help edit XML files.
  • vim-textobj-comment: text objects for comments
  • vim-textobj-user: create your own text objects (required by vim-textobj-comment).

How to try Vim

If you want to try Vim, just follow these steps:

  1. Read Seven habits of effective text editing by Bram Moolenaar (Vim's main author)
  2. Resist the urge to use a plugin or anyone else’s vimrc. Really.
  3. Use vimtutor to learn the basics.
  4. Along the way, add plugins and improve your .vimrc little by little, making sure you understand and comment all your options.

Feel free to read my article: Why I use Vim

Here's some other good articles:

Reference card

Vim shortcuts

  • <C-w>: deletes one word backward (in insert mode)
  • <C-u>: deletes one line (in insert mode)
  • fa goes to the next a character on the same line (in command mode)
  • "kyy copies the current line into register k
  • "kp paste the content of the register k

Custom keyboard shortcuts

  • <leader>pw: show the Python documentation for the word under the cursor.
  • <F7> runs flake8 on the current file.
  • qgic rewraps the comment block (thanks to vim-textobj-comment)

Acknowledgments

Thanks to: