/vim-environment

Fully complete vim-environment to improve your productivity

Primary LanguageVim Script

Fully complete vim-environment

Over the last years, I have been using Vim as my default Text Editor. It helped me to improve my productivity and it's fully customizable. Hope it can help you.

This repository was inspired by the vim configuration provided by amix

Prerequisites

In order to make every plugin work, the following stuff need to be installed:

  • Install nodejs and yarn as requirements for coc.vim
  • Install fzf as a requirement for fzf.vim
  • Install The silver searcher as a requirement for Ag.vim
  • Install py >=2.6 or any py3 as a requirement for UltiSnips

Installation

To install the configuration, use the following commands:

git clone --recurse-submodules -j8 git@github.com:GAKINDUSTRIES/vim-environment.git
sh ~/.vim-environment/install.sh

-j8 is an optional performance optimization that became available in version 2.8, and fetches up to 8 submodules at a time in parallel

Post-installation

After you run install.sh script, you need to install Coc plugin from inside Vim. To do this run the following command inside Vim:

:call coc#util#install()

This will install Coc. After that, you need to add coc-snippets plugin for snipMate integration. To do this, run the following command:

:CocInstall coc-snippets

How to install on Linux

If you have vim aliased as vi instead of vim, make sure to either alias it: alias vi=vim. Otherwise, apt-get install vim

Included Plugins

I highly recommend reading the documentation of each plugin. You may find useful information and mappings.

  • ack.vim: Vim plugin for the Perl module / CLI script 'ack'
  • ag.vim: A much faster Ack
  • ale.vim: Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support.
  • auto pairs.vim: Insert or delete brackets, parens, quotes in pair
  • bufexplorer.zip: Buffer Explorer / Browser. This plugin can be opened with <leader+o>
  • coc.vim: Intellisense engine for vim8 & neovim
  • emmet.vim: Support for expanding abbreviations for HTML & CSS
  • fzf.vim: Fzf is a general-purpose command-line fuzzy finder
  • goyo.vim and vim-zenroom2: Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room Read more here
  • IndentLine.vim: Display the indention levels with thin vertical lines.
  • limelight.vim Hyper-focus writing in vim
  • NERD Tree: A tree explorer plugin for vim
  • open_file_under_cursor.vim: Open file under cursor when pressing gf
  • pathogen.vim: Manages the runtime path of the plugins
  • mru.vim: Plugin to manage Most Recently Used (MRU) files. Includes my own fork which adds syntax highlighting to MRU. This plugin can be opened with <leader+f>
  • ultisnips: The ultimate snippet solution for Vim. Send pull requests to SirVer/ultisnips!
  • vim-arpeggio: Plugin that allow you to map commands to multi-keystrokes
  • vim-commentary: Comment stuff out. Use gcc to comment out a line (takes a count), gc to comment out the target of a motion. gcu uncomments a set of adjacent commented lines.
  • vim-easymotion.vim: Provides a much simpler way to use some motions in vim
  • vim-endwise: Helps to end certain structures automatically
  • vim-expand-region: Allows you to visually select increasingly larger regions of text using the same key combination.
  • vim-fugitive: A Git wrapper so awesome, it should be illegal
  • vim-gitgutter: Plugin which shows a git diff in the 'gutter' (sign column)
  • vim-snippets: contains snippets files for various programming languages.
  • vim-surround: Surround.vim is all about "surroundings": parentheses, brackets, quotes, XML tags, and more
  • vim-visual-multi: Multiple cursors project for vim/neovim (wip)
  • vimux: Easily interact with tmux from vim.

Included color schemes

  • ayu-vim: Light, mirage (prefered) and dark themes.
  • lightline: A light and configurable statusline/tabline for Vim.
  • onehalf: A coloscheme based on Atom's one.
  • palenlight: A dark color scheme for Vim/Neovim based off the Material Pale Night color scheme. (my favourite)
  • vim-solarized8: This is yet another Solarized theme.
  • nord-vim An arctic, north-bluish clean and elegant Vim color theme.
  • vim-hybrid: A dark colour scheme that combines the best of many plugins.

Here are a few screenshots to see how it looks:

Palenlight

alt text

onehalf

alt text

nord

alt text

solarized8_flat

alt text

ayu

alt text

Included modes

The modes included give support to the programming languages that I used to work with. You can remove any of them if you don't use it or add new ones.

  • vim-coffee-script: Syntax highlight for CoffeeScript
  • vim-javascript: Provides syntax highlighting and improved indentation.
  • vim-jsx: Syntax highlighting and indenting for JSX
  • vim-pug: Syntax highlight for Jade
  • vim-less: Syntax highlighting, indenting and autocompletion for LESS
  • vim-markdown: Folding
  • nginx.vim: Highlights configuration files for nginx
  • vim-go:Adds Go language support for Vim
  • vim-bundler: This is a lightweight bag of Vim goodies for Bundler, best accompanied by rake.vim and/or rails.vim.
  • vim-rails: Vim plugin for editing Ruby on Rails applications.While not strictly necessary, bundler.vim and dispatch.vim are installed as dependencies.

How to include your own stuff?

After you have installed the setup you can create ~/.vim_runtime/my_configs.vim to fill in any configurations that are important for you.

You can also install your own plugins via pathogen.

Key Mappings

Find a list of the most useful mappings here