8000 GitHub - adongguo/vimrc: The ultimate Vim configuration (vimrc)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

adongguo/vimrc

Β 
Β 

Repository files navigation

VIM

The Ultimate vimrc

Over the last 10 years, I have used and tweaked Vim. This configuration is the ultimate vimrc (or at least my version of it).

There are two versions:

  • The Basic: If you want something small just copy basic.vim into your ~/.vimrc and you will have a good basic setup
  • The Awesome: Includes a ton of useful plugins, color schemes, and configurations

I would, of course, recommend using the awesome version.

How to install the Awesome version?

Install for your own user only

The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal:

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

Install for multiple users

To install for multiple users, the repository needs to be cloned to a location accessible for all the intended users.

git clone --depth=1 https://github.com/amix/vimrc.git /opt/vim_runtime
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime user0 user1 user2
# to install for all users with home directories
sh ~/.vim_runtime/install_awesome_parameterized.sh /opt/vim_runtime --all

Naturally, /opt/vim_runtime can be any directory, as long as all the users specified have read access.

Fonts

I recommend using IBM Plex Mono font (it's an open-source and awesome font that can make your code beautiful). The Awesome vimrc is already setup to try to use it.

Some other fonts that Awesome will try to use:

How to install the Basic version?

The basic version is just one file and no plugins. Just copy basic.vim and paste it into your vimrc.

The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits.

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh

How to install on Windows?

Use gitforwindows to checkout the repository and run the installation instructions above. No special instructions needed ;-)

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

How to update to latest version?

Just do a git rebase!

cd ~/.vim_runtime
git pull --rebase
python update_plugins.py

Some screenshots

Colors when editing a Python file:

Screenshot 1

NERD Tree plugin in a terminal window: Screenshot 3

Distraction free mode using goyo.vim and vim-zenroom2: Screenshot 4

Included Plugins

I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience!

  • ack.vim: Vim plugin for the_silver_searcher (ag) or ack -- a wicked fast grep
  • bufexplorer.zip: Quickly and easily switch between buffers. This plugin can be opened with <leader+o>
  • ctrlp.vim: Fuzzy file, buffer, mru and tag finder. It's mapped to <Ctrl+F>
  • goyo.vim and vim-zenroom2:
  • lightline.vim: A light and configurable statusline/tabline for Vim
  • NERD Tree: A tree explorer plugin for vim
  • open_file_under_cursor.vim: Open file under cursor when pressing gf
  • pathogen.vim: Manage your vim runtimepath
  • snipmate.vim: snipmate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim
  • ale: Syntax and lint checking for vim (ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel)
  • 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-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-indent-object: Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts
  • vim-multiple-cursors: Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing)
  • vim-yankstack: Maintains a history of previous yanks, changes and deletes
  • vim-zenroom2 Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room
  • gist-vim Easily create gists from Vim using the :Gist command

Included color schemes

Included modes

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. For instance, my my_configs.vim looks like this:

~/.vim_runtime (master)> cat my_configs.vim
map <leader>ct :cd ~/Desktop/Todoist/todoist<cr>
map <leader>cw :cd ~/Desktop/Wedoist/wedoist<cr> 

You can also install your plugins, for instance, via pathogen you can install vim-rails:

cd ~/.vim_runtime
git clone git://github.com/tpope/vim-rails.git my_plugins/vim-rails

Key Mappings

The leader is ,, so whenever you see <leader> it means ,.

Normal mode mappings