/vim-config

(Mac)Vim configuration

Primary LanguageVim ScriptMIT LicenseMIT

Installation

Clone the repo and run the install script:

git clone https://github.com/joemasilotti/vim-config.git ~/.vim
cd ~/.vim
./install

Included plugins

ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking and semantic errors) while you edit your text files, and acts as a Vim Language Server Protocol client.

Mappings:

  • Ctrl+j / Ctrl+Shift+j Jump to next/previous error

A Filetype plugin for csv files

🌸 A command-line fuzzy finder

Note: The default commands for fzf are :Files, :GFiles, etc.; we have configured the plugin to add the 'Fzf' prefix to commands to disambiguate with other plugins.

Mappings:

  • leaderf Fuzzy search for files. This will ignore any files ignored by git if the current directory is a git repository (:FzfGFiles) or search all files if not (:FzfFiles).
  • leaderrb Fuzzy search open buffers.

Easily split a single line across multiple lines.

Mappings:

  • leaderj Split the current line.

Vim plugin for intensely nerdy commenting powers.

Mappings:

  • leader/ Comment/uncomment the current line or selection.

A tree explorer plugin for vim.

Mappings:

  • \\ Open/close the directory tree.
  • | (shift+\) Open the directory tree focused on the file in the active buffer.

Vim Meets Poetry and Pipenv Virtual Environments

This plugin provides a operator to replace something(motion/visual) with a specified register.

Mappings:

  • Ctrl+k (followed by a motion) Replace with register

The ultimate snippet solution for Vim.

Type the snippet followed by tab.

List of custom snippets (incomplete):

  • f Add a function definition in JavaScript
  • desc Add a describe block in RSpec or Jasmine
  • cont Add a context block in RSpec or Jasmine
  • bef Add a before block in RSpec or Jasmine
  • it Add an example in Jasmine

The undo history visualizer for VIM

Mappings:

  • leaderu Open the undo tree window.

Easily search for, substitute, and abbreviate multiple variants of a word.

Augments the standard search and replace (:s) with a smarter search and replace (:S). Read the documentation on the repo; it's worth it.

Brace yourself, it's time to toggle your ruby blocks!

Mappings:

  • leaderl Convert between do/end and {} ruby blocks.

Lightweight support for Ruby's Bundler.

Add syntax highlighting for bundler, as well as :Bundle and :Bopen commands.

Asynchronous build and test dispatcher

Wisely add "end" in ruby, endfunction/endif/more in vim script, etc.

Automatically inserts 'end' for you in ruby blocks. That's it.

A Git wrapper so awesome, it should be illegal.

Many commands for manipulating git inside vim.

A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks and partial hunks.

This will automatically update the symbol line (gutter) of the current buffer with git status.

Vim runtime files for Haml, Sass, and SCSS.

Updated versions of runtime files that ship with vim.

Vastly improved JavaScript indentation and syntax support in Vim.

Ability to toggle JavaScript functions to-and-from arrow functions and toggle their braces.

Mappings

  • leaderl Toggle braces on an arrow function

A better JSON for Vim: distinct highlighting of keywords vs values, JSON-specific (non-JS) warnings, quote concealing.

JSX and TSX syntax pretty highlighting for vim.

Ruby on Rails power tools

Lots and lots of Rails-specific features. It's worth reading the documentation for this one.

It's like rails.vim without the rails.

Useful for non-Rails projects (e.g. gems).

Minimal rbenv support

Enable repeating supported plugin maps with ".".

Allow using the . command to repeat commands from the surround, and unimpaired plugins.

Use RipGrep in Vim and display results in a quickfix list.

Use :Rg to search for files. Similar to :Ack and :Ag.

Vim/Ruby Configuration Files

Syntax highlighting and indentation for ruby.

Search context in Vim in a sidebar using ag output.

Use :SideSearch or :SS to search for files. Customized to work with ripgrep.

Quoting/parenthesizing made simple.

Adds a surround action for most motions. Possibly the greatest text-editing plugin of all time.

A Vim wrapper for running tests on different granularities.

Mappings

  • Ctrl+tn (:TestNearest) Runs the test nearest to the cursor
  • Ctrl+tf (:TestFile) Runs all tests in the current file
  • Ctrl+ts (:TestSuite) Runs the whole test suite.
  • Ctrl+tl (:TestLast) Runs the last test.
  • Ctrl+tg (:TestVisit) Visits the test file from which you last run your tests

A custom text object for selecting ruby blocks.

Allows selecting ruby blocks using i and a motions. For example, vir will visually select everything inside the ruby block containing the cursor.

Create your own text objects.

Dependency of vim-textobj-rubyblock.

Pairs of handy bracket mappings.

Several convenient key mappings. For example, [space and ]space for inserting newlines, and [e and ]e for swapping lines.

(Vit)ality is a plugin that makes (V)im play nicely with (i)Term 2 and (t)mux.

Now Vim can save when iTerm 2 loses focus, even if it's inside tmux!

It also handles switching the cursor to a bar shaped one when in insert mode, and restoring it when not.

Color schemes

  • molokai
  • solarized
  • tomorrow