/vimrc

vgod's vimrc

Primary LanguageShell

circlelychen's vimrc

Author: Hao-Yuan Chen truecirclely@gmail.com

Original Author: Tsung-Hsiang (Sean) Chang vgod@vgod.tw

Fork me on GITHUB https://github.com/circlelychen/vimrc.

INSTALL

Build a Docker image locally

The following build two images:

  • circlelychen/dev:base
  • circlelychen/dev:vim
  • circlelychen/dev:myvim
$> ./build_docker.sh

Building from source

  1. Check out from github

     git clone git://github.com/circlelychen/vimrc.git ~/.vim
     cd ~/.vim
    
  2. Install ~/.vimrc and ~/.gvimrc

     ./install-vimrc.sh
    
  3. Install/Upgrade Plugin

  • Editor mode

      Open VIM editor and execuste :PluginInstall
    
  • CLI mode

      vim +PluginInstall +qall
    
  1. (Optional, if you want vim-go ) Install all the necessary binaries for vim-go

     Open VIM editor and execuste :GoInstallBinaries
    
  2. (Optional, if you want youCompleteMe ) Comple YCM plugin for specific language

  • Golang

      cd ~/.vim/bundle/YouCompleteMe
      ./install.py --go-completer 
    
  • C/C++

      cd ~/.vim/bundle/YouCompleteMe
      ./install.py --clang-completer
    
  • To simply compile with everything enabled, there's a --all flag. So, to install with all language features, ensure xbuild, go, tsserver, node, npm, rustc, and cargo tools are installed and in your PATH, then simply run

      cd ~/.vim/bundle/YouCompleteMe
      ./install.py --all
    
  1. (Optional, if you want Command-T) Compile the Command-T plugin

     cd .vim/bundle/command-t/ruby/command-t
     ruby extconf.rb
     make
    

HOW TO USE

Runing VIM via Docker Machine

$> docker run -it --rm -e "USERID=$(id -u)" -e "GROUPID=$(id -u)" -v $(pwd):/devprj circlelychen/dev:$TAG

see the "USEFUL SHORTCUTS" section in vimrc to learn my shortcuts.

PLUGINS

  • Nerd Tree: A tree explorer plugin for navigating the filesystem.

    Useful commands:
    :Bookmark [name] - bookmark any directory as name
    :NERDTree [name] - open the bookmark [name] in Nerd Tree

  • AutoClose: Inserts matching bracket, paren, brace or quote.

  • vim-surround: deal with pairs of surroundings.

  • matchit: extended % matching for HTML, LaTeX, and many other languages.

  • xmledit: XML/HTML tags will be completed automatically.

  • Command-T: open and navigate between files with cmd-t.

  • SuperTab: Do all your insert-mode completion with Tab.

  • snipMate: TextMate-style snippets for Vim

    :help snipMate to see more info.

  • YankRing: Maintains a history of previous yanks, changes and deletes

    :help yankring to see more info.

  • VisIncr: Produce increasing/decreasing columns of numbers, dates, or daynames.

  • Cute Error Marker: showing error and warning icons on line.

    MacVim users need to enable "Use experimental renderer" to see graphical icons.

  • vim-latex: Latex support.

  • vim-airline: status/tabline for vim.

  • YouCompleteMe: A code-completion engine for Vim

  • EasyMotion: An easy way to jump to a word.

    Useful commands:
    ,,w forward EasyMotion
    ,,b backward EasyMotion

  • TagBar: browsing the tags of source files ordered by classes.

    Useful commands:
    F7 toggles the TagBar

  • Indent Motion: Vim motions to the start and end of the current indentation-delimited block

    Useful commands:
    ,] move to the end of the current indentation-delimited block (very useful in Python and CoffeeScript) ,[ move to the beginning of the current indentation-delimited block (very useful in Python and CoffeeScript)

  • Zen Coding: expanding abbreviation like zen-coding.

    Useful commands:
    <ctrl-y>, expand zen-coding abbreviation.

  • ack.vim: run ack (a better grep) from vim, and shows the results in a split window.

    :Ack [options] {pattern} [{directory}]

  • salt-yaml: VIm files for working on Salt files.

  • Git Gutter: shows a git diff in the 'gutter' (sign column). It shows whether each line has been added, modified, and where lines have been removed.

Language specific supports

  • Latex: Read :help latex-suite.txt
  • Restructured Text: ctrl-u 1~5 inserts Part/Chapter/Section headers
  • HTML, Javascript, CoffeeScript, Python, CSS, C, C++, Java: use TAB to do omni-completion.
  • HTML/XML: End tags are automatically completed after typing a begin tag. (Typing > twice pushes the end tag to a new line.)

Other good references

Vim Visual Cheat Sheet

I've compiled and plotted a Vim Cheat Sheet for beginners. Welcome to download and learn Vim with it.

My Vim Visual Cheat Sheet

These Vim Visual Cheat Sheets are released under Creative Commons Attribution-ShareAlike 3.0 Unported License.

License

This vimrc project is released under Creative Commons Attribution-ShareAlike 3.0 Unported License.