The version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following:
git clone https://github.com/abjelosevic88/vim-ultimate.git ~/.vim_runtime
sh ~/.vim_runtime/install_vimrc.sh
The taglist.vim plugin will require ctags (http://ctags.sourceforge.net) (Debian: apt-get install ctags)
I also recommend using Consolas or Source Code Pro font from Adobe.
Use msysgit to checkout the repository and run the installation instructions above. No special instructions needed.
Simply just do a git rebase!
cd ~/.vim_runtime
git pull --rebase
I recommend reading the docs of these plugins to understand them better. Each of them provide a much better Vim experience!
- pathogen.vim: Manages the runtime path of the plugins
- YankRing: Maintains a history of previous yanks, changes and deletes
- snipMate.vim: snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim
- bufexplorer.zip: Buffer Explorer / Browser. This plugin can be opened with
<leader+o> - NERD Tree: A tree explorer plugin for vim
- ack.vim: Vim plugin for the Perl module / CLI script 'ack'
- ag.vim: A much faster Ack
- ctrlp.vim: Fuzzy file, buffer, mru and tag finder. In my config it's mapped to
<Ctrl+F>, because<Ctrl+P>is used by YankRing - 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> - open_file_under_cursor.vim: Open file under cursor when pressing
gf - zencoding: Expanding abbreviation like zen-coding, very useful for editing XML, HTML.
- vim-indent-object: Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts
- taglist.vim: Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)
- vim-multiple-cursors: Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing)
- vim-expand-region: Allows you to visually select increasingly larger regions of text using the same key combination.
- vim-airline: Lean & mean status/tabline for vim that's light as air (replacing powerline)
- vim-fugitive: A Git wrapper so awesome, it should be illegal
- goyo.vim and vim-zenroom2: Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room Read more here
- vim-commentary: Comment stuff out. Use
gccto comment out a line (takes a count),gcto comment out the target of a motion.gcuuncomments a set of adjacent commented lines. - syntastic: Syntax checking hacks for vim
- [onedark]: My Favorite!
- peaksea
- vim-colors-solarized
- vim-irblack
- mayansmoke
- vim-pyte
- vim-coffee-script
- vim-less
- vim-bundle-mako
- vim-markdown
- nginx.vim: Highlights configuration files for nginx
- vim-golang
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 own plugins, for instance, via pathogen we can install vim-rails:
cd ~/.vim_runtime
git clone git://github.com/tpope/vim-rails.git sources_non_forked/vim-rails
Now you have vim-rails installed ;-)
dd - Delete line
{x}dd - Delete x lines
o - Go to line below and enter INSERT mode
O - Go to line aboove nad enter INSERT mode
w - Go to next word
b - Go to previous word
A - Go to the end of the line and enter INSERT mode
I - Go to the start of the line and enter INSERT mode
a - Go to next caracter and enter INSERT mode
H - Go to upper part of the file
L - Go to end of visible area
M - Go to middle part of the screen
0 - Go to the beginning of the line
$ - Go to the end onf the line
v - VISUAL mode, in this mode you can select text code
ctrl + f - Go down 1 screen through the document
ctrl + b - Go up 1 screen through the document
G - Go to the end of the file
gg - Go to the beginning of the file
{x}G - Go to x line
x - Delete next character
{x}x - Delete next x characters
X - Delete previous character
{x}X - Delete previous x characters
dw - Delete next word
bw - Delete previous word
. - repeat last command
d0 - Delete from the beginning of the line to the current cursor position
d$ - Delete to the end of the line
yy - Copy current line
{x}yy - Copy x lines
p - Paste to next line
P - Paste to previous line
:= - Outputs total lines of code
d - In VISUAL mode to cut text
y - In VISUAL mode to copy text
m{x} - move current line after x line
cw - Change word
c0 - Change to the start of the line
c$ - Change to the end of the line
r - Replace word
R - Replace
S - replace whole line
{x}~ - Change case of the current x letters
ctrl + a - Increment number
ctrl + x - Decrement number
ctrl + g - Get status of curent file and line in the file
ctrl + w - In INSERT mode will delete previous word
ctrl + u - In INSERT mode will delete to tht beginning of the file
ctrl + s - Mark other instances
m[x] - Create marker and line, acces marker by typing 'a
:r filename - Include the contents of an external file
:r !date - Reads the results from the date command into a new line following the cursor.
:r !ls -1 - Place after the cursor, the current directory listing displayed as a single column.
:5,38 w newfile - Write out a block of text denoted by line numbers
:%s/fff/rrrrr/ - For all lines in a file, find string "fff" and replace with string "rrrrr" for the first instance on a line
:Ex - File explorer
v + a + t - Select everything inside HTML tag
ctrl + x + ctrl + l - Line completion
ga - Display hex, ascii value of character under cursor
g8 - Display hex value of utf-8 character under cursor
guu - Lowercase line
gUU - Uppercase line
CTRL-R=5*5 - Insert 25 into text
'. - Go to last modified line
<C-O> - Retrace your movements in file (backward)
<C-I> - Retrace your movements in file (forward)
alt + [j/k] - Move current line up/down
Open bufexplorer and see and manage the current buffers:
map <leader>o :BufExplorer<cr>
Open MRU.vim and see the recently open files:
map <leader>f :MRU<CR>
Open ctrlp.vim plugin:
let g:ctrlp_map = '<c-f>'
Open PeepOpen plugin:
map <leader>j :PeepOpen<cr>
Managing the NERD Tree plugin:
map <leader>nn :NERDTreeToggle<cr>
map <leader>nb :NERDTreeFromBookmark
map <leader>nf :NERDTreeFind<cr>
goyo.vim and vim-zenroom2 lets you only focus on one thing at a time. It removes all the distractions and centers the content. It has a special look when editing Markdown, reStructuredText and textfiles. It only has one mapping.
map <leader>z :Goyo<cr>
Fast saving of a buffer:
nmap <leader>w :w!<cr>
Treat long lines as break lines (useful when moving around in them):
map j gj
map k gk
Map <Space> to / (search) and <Ctrl>+<Space> to ? (backwards search):
map <space> /
map <c-space> ?
map <silent> <leader><cr> :noh<cr>
Disable highlight when <leader><cr> is pressed:
map <silent> <leader><cr> :noh<cr>
Smart way to move between windows:
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
Closing of current buffer(s):
" Close current buffer
map <leader>bd :Bclose<cr>
" Close all buffers
map <leader>ba :1,1000 bd!<cr>
Useful mappings for managing tabs:
map <leader>tn :tabnew<cr>
map <leader>to :tabonly<cr>
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory
map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/
Switch CWD to the directory of the open buffer:
map <leader>cd :cd %:p:h<cr>:pwd<cr>
Open vimgrep and put the cursor in the right position:
map <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left>
Vimgreps in the current file:
map <leader><space> :vimgrep // <C-R>%<C-A><right><right><right><right><right><right><right><right><right>
Remove the Windows ^M - when the encodings gets messed up:
noremap <leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
Quickly open a buffer for scripbble:
map <leader>q :e ~/buffer<cr>
Toggle paste mode on and off:
map <leader>pp :setlocal paste!<cr>
Quickly insert parenthesis/brackets/etc.:
inoremap $1 ()<esc>i
inoremap $2 []<esc>i
inoremap $3 {}<esc>i
inoremap $4 {<esc>o}<esc>O
inoremap $q ''<esc>i
inoremap $e ""<esc>i
inoremap $t <><esc>i
Insert the current date and time (useful for timestamps):
iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
Visual mode pressing * or # searches for the current selection:
vnoremap <silent> * :call VisualSelection('f')<CR>
vnoremap <silent> # :call VisualSelection('b')<CR>
When you press gv you vimgrep after the selected text:
vnoremap <silent> gv :call VisualSelection('gv')<CR>
When you press <leader>r you can search and replace the selected text:
vnoremap <silent> <leader>r :call VisualSelection('replace')<CR>
Surround the visual selection in parenthesis/brackets/etc.:
vnoremap $1 <esc>`>a)<esc>`<i(<esc>
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $$ <esc>`>a"<esc>`<i"<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $e <esc>`>a"<esc>`<i"<esc>
$q is super useful when browsing on the command line. It deletes everything until the last slash:
cno $q <C-\>eDeleteTillSlash()<cr>
Bash like keys for the command line:
cnoremap <C-A> <Home>
cnoremap <C-E> <End>
cnoremap <C-K> <C-U>
cnoremap <C-P> <Up>
cnoremap <C-N> <Down>
Write the file as sudo (only on Unix). Super useful when you open a file and you don't have permissions to save your changes. Vim tip:
:W
Pressing <leader>ss will toggle and untoggle spell checking
map <leader>ss :setlocal spell!<cr>
Shortcuts using <leader> instead of special chars
map <leader>sn ]s
map <leader>sp [s
map <leader>sa zg
map <leader>s? z=
Do :help cope if you are unsure what cope is. It's super useful!
When you search with vimgrep, display your results in cope by doing:
<leader>cc
To go to the next search result do:
<leader>n
To go to the previous search results do:
<leader>p
Vimscript mappings:
map <leader>cc :botright cope<cr>
map <leader>co ggVGy:tabnew<cr>:set syntax=qf<cr>pgg
map <leader>n :cn<cr>
map <leader>p :cp<cr>
- Vim: Annotate strings with gettext (the macro way)
- vimgrep: Searching through multiple file extensions
- Filtering through vimgrep results using regular expressions
- PeepOpen - File auto completion for Mac editors
- Vim 7.3: Persistent undo and encryption!
- Vim tips: Visual Search
- Folding in Vim
- Zen room for Vim: Focusing only on the essential