Links
• vim.org - main site: docs, plugin search
• vim.wikia.com - vim tips collection
• ru.wikibooks.org/wiki/Vim
• vimcasts.org - collection of video tutorials
• vim-scripts.org - all vim plugins under git
• rayninfo.co.uk/vimtips.html
Best of Vim Tips by David Rayner
a.k.a. zzapper, 15 years with Vim and still learning ;)
• derekwyatt.org/vim/vim-tutorial-videos
Derek Wyatt's Vim video totorial
Vim directory structure
~/.vim
|-- after
|-- autoload
|-- colors
|-- doc
|-- ftplugin
|-- plugin
`-- syntax
Slide 72
Slide 72 text
Manual plugin
management is not
convenient
Slide 73
Slide 73 text
pathogen
Revolution in vim plugin management
Makes it super easy to install plugins in
their own private directories
Check out the how to and video
tutorial on vimcasts.org
Slide 74
Slide 74 text
vundle
Takes ideas behind pathogen and
brings it to the next level
Inspired by Ruby's bundler gem
Slide 75
Slide 75 text
vim-scripts.org
Mirrors all vim plugins under git on
Github
vim-scripts.org + git submodules + pathogen
OR
vim-scripts.org + vundle
=
automatic plugin management, updates and
synchronization
Slide 76
Slide 76 text
General purpose
plugins
Slide 77
Slide 77 text
buffexplorer
Quickly and easily switch between
buffers
Slide 78
Slide 78 text
NERDTree
Allows you to explore your filesystem
and to open files and directories
Slide 79
Slide 79 text
Gundo
Visualize your Vim undo tree
Slide 80
Slide 80 text
MRU
Provides an easy access to a list of
Most Recently Used files
Slide 81
Slide 81 text
FuzzyFinder
Provides convenient ways to quickly
reach the buffer, file, command,
bookmark, tag you want, using fuzzy
pattern matching
Slide 82
Slide 82 text
powerline
Vim statusline on steroids:
Slide 83
Slide 83 text
grep
Powerful integration with system's
*grep utilities, including ability to grep
through Vim buffers
Slide 84
Slide 84 text
yankstack
Lightweight implementation of the Emacs
'kill ring' for Vim.
It allows you to yank and delete things without
worrying about losing the text that you yanked
previously.
It effectively turns your default register into a
stack, and lets you cycle through the items in
the stack after doing a paste.
Slide 85
Slide 85 text
EasyMotion
Highlights all possible motion choices
and allows you to press one key to
jump directly to the target
Slide 86
Slide 86 text
MultipleSearch
Display multiple searches at the same
time with different color highlights
Slide 87
Slide 87 text
surround
Easily delete, change and add
surroundings in pairs (parentheses,
brackets, quotes, XML tags, and more)
Slide 88
Slide 88 text
repeat
Allows to repeat complex plugin's
actions (for example surround) by
remapping . command
Slide 89
Slide 89 text
Align
Easily align text and program code in
various ways, using multitude of
predefined align-schemas or powerful
manual control
Slide 90
Slide 90 text
DirDiff
Performs a recursive diff on two
directories and generates a diff
window, similar to GUI diff tools like
Kdiff3 or Kompare
Slide 91
Slide 91 text
SudoEdit
Allows to read/write a file from inside
vim with sudo privileges
Slide 92
Slide 92 text
gnupg
Transparent editing of gpg encrypted
files
Slide 93
Slide 93 text
file-line
Allows to open files as file:line and
place a cursor on chosen line
Slide 94
Slide 94 text
greplace
Global Replace plugin allows you to
search and replace a pattern across
multiple files
Slide 95
Slide 95 text
VisIncr
Facilitates making a column of
increasing or decreasing numbers,
dates, or day names
Slide 96
Slide 96 text
man
Allows to read man pages directly from
vim with :Man command
This plugin is part of default vim
distribution and can be enabled with
runtime! ftplugin/man.vim command in
.vimrc
Slide 97
Slide 97 text
info
GNU info documentation browser
Slide 98
Slide 98 text
Programming related
plugins
Slide 99
Slide 99 text
a
Alternate between source files quickly,
like .c ⇐⇒ .h etc.
Slide 100
Slide 100 text
Taglist
Provides an overview of the structure
of source code files and allows you to
efficiently browse through source code
files for many programming languages
Slide 101
Slide 101 text
Tagbar
Similar to the Taglist plugin, but is
superior in some ways and provides an
ability to sort tags by scope
Slide 102
Slide 102 text
Tagselect
A better :tselect and Ctrl-] commands
Shows matched tags in a separate
window, which can be searched and
scrolled with ordinary vim commands
Slide 103
Slide 103 text
cscope_macros
Handy mappings and commands to
search tags with cscope
Slide 104
Slide 104 text
fugitive
An awesome git integration into vim
Slide 105
Slide 105 text
OmniCppComplete
C/C++ omni-completion with ctags
database, a kind of intellisense for vim
Slide 106
Slide 106 text
clang-complete
Uses Clang for completing C, C++,
Objective-C and Objective-C++
You don't need any ctags for it to work
It can complete complex things, which
OmniCppComplete can't
Slide 107
Slide 107 text
EnhCommentify
Automatically comment/uncomment
lines of code in various programming
languages
Slide 108
Slide 108 text
NERDCommenter
Another one nice commenter, it
complements EnhCommentify, adding
some features which the latter doesn't
have
Slide 109
Slide 109 text
snipMate
Brings TextMate's snippets features in
Vim for various programming
languages
Slide 110
Slide 110 text
delimitMate
Provides automatic closing of quotes,
parenthesis, brackets, etc., besides
some other related features that
should make your time in insert mode a
little bit easier
Slide 111
Slide 111 text
errormarker
Highlights and sets error markers for
lines with compile errors
Slide 112
Slide 112 text
camelcasemotion
Motion through CamelCaseWords and
underscore_notation
Slide 113
Slide 113 text
argtextobj
Text-object like motion for function's
arguments
Slide 114
Slide 114 text
BlockDiff
Shows diff between two arbitrary
blocks of text
Slide 115
Slide 115 text
DoxygenToolkit
Simplify creation of Doxygen
documentation in C/C++ projects
Slide 116
Slide 116 text
Conque-Shell
Run interactive commands, such as
bash, inside a Vim buffer
Slide 117
Slide 117 text
Syntastic
It's a syntax checking plugin that runs
files through external syntax checkers
and displays any resulting errors to the
user
This can be done automatically or on
demand
Slide 118
Slide 118 text
git_patch_tags
Provides shortcuts for adding tag lines
for git commits, like Reviewed-by:
Tested-by: etc. with automatic
user-name and email substitution
Slide 119
Slide 119 text
patchreview
Simplify the process of reviewing
multi-file patches, by showing each file
changes in a diffsplit in separate vim
tab
Slide 120
Slide 120 text
Other mics plugins
Slide 121
Slide 121 text
Marks-Browser
Shows list of set marks (including
special) for the current file in a
separate window
Slide 122
Slide 122 text
ShowMarks
Visually shows the location of marks by
placing a sign in the leftmost column of
the buffer
Slide 123
Slide 123 text
diffchanges
Show changes, made to current buffer
since the last save, in a diff mode
Slide 124
Slide 124 text
xml.vim
Makes editing xml (and html) files a
kid's play
Slide 125
Slide 125 text
DrawIt
Ascii drawing plugin: lines, ellipses,
arrows, fills, and more
Slide 126
Slide 126 text
deb
Allows to browse debian package in
the same way you can browse .tar and
.zip files
Slide 127
Slide 127 text
Eternal question:
Slide 128
Slide 128 text
Vim vs Emacs
.
.
Slide 129
Slide 129 text
It doesn't matter, just
choose one of them
but vim is better anyway ; )
Slide 130
Slide 130 text
Give it a try ;)
Check out my .vimrc config on github
To try my vim configuration just do the
following:
$ git clone git://github.com/chumakd/vim-runtime.git
$ cd vim-runtime
$ git submodule update --init
$ cd ..
$ MYVIMRC=./vim-runtime/vimrc VIMHOME=./vim-runtime \
gvim ./vim-runtime/vimrc