We are still actively working on the spam issue.

Difference between revisions of "Vim"

From InstallGentoo Wiki
Jump to: navigation, search
m (convert plugin list to bullet points)
(more plugins added)
Line 33: Line 33:
 
=== Buffer Navigation ===
 
=== Buffer Navigation ===
  
* [https://github.com/Lokaltog/vim-easymotion EasyMotion] - Spatial navigation, saves a lot of keystrokes.
+
* [https://github.com/justinmk/vim-sneak Sneak] - maps the s command to find occurrences of the next two chars, and optionally t/T/f/F to work line-wise
 +
* [https://github.com/Lokaltog/vim-easymotion EasyMotion] - Spatial navigation, saves a lot of keystrokes. (though frowned on as very anti-Vim to some)
 
* [https://github.com/majutsushi/tagbar Tagbar] - Tag navigation, requires a '''ctags''' package.
 
* [https://github.com/majutsushi/tagbar Tagbar] - Tag navigation, requires a '''ctags''' package.
 
* [https://github.com/kien/ctrlp.vim CtrlP] - Fuzzy file, buffer, mru, tag, etc finder.
 
* [https://github.com/kien/ctrlp.vim CtrlP] - Fuzzy file, buffer, mru, tag, etc finder.
* [https://github.com/koron/minimap-vim Minimap] - Minimap implementation similar to the one found in Sublime Text
+
* [https://github.com/haya14busa/incsearch.vim Incsearch.vim] - futher expands the power of incremental-search in vim
  
 
=== File Navigation ===
 
=== File Navigation ===
  
 +
* [https://github.com/kien/ctrlp.vim CtrlP] - Fuzzy file, buffer, mru, tag, etc finder.
 +
* [https://github.com/Shougo/vimfiler VimFiler] - similar to built-in netrw but with improvements and fixes
 
* [https://github.com/scrooloose/nerdtree NERDTree] - Tree explorer plugin.
 
* [https://github.com/scrooloose/nerdtree NERDTree] - Tree explorer plugin.
* [https://github.com/kien/ctrlp.vim CtrlP] - Fuzzy file, buffer, mru, tag, etc finder.
 
  
 
=== Task Automation ===
 
=== Task Automation ===
Line 50: Line 52:
 
* [https://github.com/scrooloose/nerdcommenter NERDCommenter] - Manipulates code comments according to the file type.
 
* [https://github.com/scrooloose/nerdcommenter NERDCommenter] - Manipulates code comments according to the file type.
 
* [https://github.com/othree/vim-autocomplpop AutoComplPop] - Basic pop-up keyword-based completion.
 
* [https://github.com/othree/vim-autocomplpop AutoComplPop] - Basic pop-up keyword-based completion.
 +
* [https://github.com/mattn/emmet-vim Emmet] - Powerful text-expansion for HTML/XML markup
 +
* [https://github.com/tpope/vim-repeat Vim-repeat] - expands the .(repeat) power of the command
  
 
=== Code Insertion/Completion ===
 
=== Code Insertion/Completion ===
Line 56: Line 60:
 
* [https://github.com/scrooloose/syntastic Syntastic] - Syntax checking.
 
* [https://github.com/scrooloose/syntastic Syntastic] - Syntax checking.
 
* [https://github.com/Valloric/YouCompleteMe YouCompleteMe] - Advanced semantic code completion engine.
 
* [https://github.com/Valloric/YouCompleteMe YouCompleteMe] - Advanced semantic code completion engine.
 +
* [https://github.com/Shougo/neocomplete.vim NeoComplete] - code completion with caching
 
* [http://eclim.org/ Eclim] - Code completion making use of Eclipse's engine.
 
* [http://eclim.org/ Eclim] - Code completion making use of Eclipse's engine.
  
Line 63: Line 68:
 
* [https://github.com/chrisbra/SudoEdit.vim SudoEdit] - Edit files using sudo or su or any other tool.
 
* [https://github.com/chrisbra/SudoEdit.vim SudoEdit] - Edit files using sudo or su or any other tool.
 
* [https://github.com/terryma/vim-multiple-cursors Multiple Cursors] - Sublime Text style multiple selections
 
* [https://github.com/terryma/vim-multiple-cursors Multiple Cursors] - Sublime Text style multiple selections
 +
* [https://github.com/koron/minimap-vim Minimap] - Minimap implementation similar to the one found in Sublime Text
  
 
=== Ricing ===
 
=== Ricing ===

Revision as of 06:49, 9 January 2015

Vim logo.

Vim (Vi IMproved) is a text editor based on the standard UNIX editor Vi. Its main feature is modal editing, which minimizes the amount of keystrokes needed for performing tasks, thus greatly reducing strain.

Vim Cheat Sheet for programmers
Vim Cheat Sheet for programmers

Learning Vim

General Advice

  • If you're interested in learning Vim, it is likely for the purpose of programming or markup. In this case, it is recommended to look up online exercises of a language you're familiar with, and write them with Vim.
  • It may be tempting to use the arrow, delete, backspace, home, pageup, pagedown, and end keys, but do not.
  • When performing a task, always think about how to minimize the amount of keystrokes for it. Research online.
  • Keep a cheat sheet, write down new commands you want to learn, keep only several or so commands at a time until you've learned them.

For Beginners

Configuration

All configuration is kept in the ~/.vimrc file, ~ being your home directory. It is advisable to look up existing online vimrc's but do not just copy them. In Vim, :h each entry, read the description and decide for yourself if you want them.

Well documented base to start out with: https://github.com/timss/vimconf

Plugins

Buffer Navigation

  • Sneak - maps the s command to find occurrences of the next two chars, and optionally t/T/f/F to work line-wise
  • EasyMotion - Spatial navigation, saves a lot of keystrokes. (though frowned on as very anti-Vim to some)
  • Tagbar - Tag navigation, requires a ctags package.
  • CtrlP - Fuzzy file, buffer, mru, tag, etc finder.
  • Incsearch.vim - futher expands the power of incremental-search in vim

File Navigation

  • CtrlP - Fuzzy file, buffer, mru, tag, etc finder.
  • VimFiler - similar to built-in netrw but with improvements and fixes
  • NERDTree - Tree explorer plugin.

Task Automation

  • EasyAlign - Tool for aligning multiple lines of text in columns.
  • DelimitMate - Auto-completes surroundings and provides bindings for navigating through them.
  • Vim-Surround - Manipulates (insert, change, delete) pairs of surroundings.
  • NERDCommenter - Manipulates code comments according to the file type.
  • AutoComplPop - Basic pop-up keyword-based completion.
  • Emmet - Powerful text-expansion for HTML/XML markup
  • Vim-repeat - expands the .(repeat) power of the command

Code Insertion/Completion

  • UltiSnips - Customizable snippet engine for boilerplate code time-saving.
  • Syntastic - Syntax checking.
  • YouCompleteMe - Advanced semantic code completion engine.
  • NeoComplete - code completion with caching
  • Eclim - Code completion making use of Eclipse's engine.

Miscellaneous

  • Vim-Sensible - Provides a number of common and sane configurations.
  • SudoEdit - Edit files using sudo or su or any other tool.
  • Multiple Cursors - Sublime Text style multiple selections
  • Minimap - Minimap implementation similar to the one found in Sublime Text

Ricing

  • AirLine - Status line with many out-of-the-box features and integration with other plugins.
  • LightLine - Status line with emphasis on minimalism and customizability.
  • Vivify - Color scheme editor for Vim

External Links