Vim Tips and Tricks
Vim Configuration
- Copy the content of the file
.vimrc
to your~/.vimrc
- After completing Vundle setup, install your desired plugins, then launch vim and run
:PluginInstall
Plugin for Vim-Markdown-Preview
Add Plugin 'JamshedVesuna/vim-markdown-preview'
to your .vimrc. Launch vim and run :PluginInstall
There are some requirements, and you have to install pip first:
sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force-reinstall
sudo python -m pip install pip --upgrade --force-reinstall
Install grip (for GitHub flavoured markdown) with the following:
sudo pip install grip
Put let vim_markdown_preview_github=1
in your .vimrc file
Install xdotool with:
sudo apt-get install xdotool
Vim commands (summary)
# | Command | Description |
---|---|---|
1 | i | insert mode |
2 | x,X | delete one char |
3 | o,O | insert new line and go to insert mode |
4 | J | join the current line with its next one |
5 | r | replace one character |
6 | a | append |
7 | u | undo |
8 | d | delete (dw, dd, d$, d^, ..) |
9 | G | go to line (10G, 1G, G) |
10 | y | yank/copy (yy, yw, y$, ..) |
11 | p,P | paste |
12 | /x | search for x (n, N) |
13 | $ | end of line |
14 | ^ | start of line |
15 | . | repeat |
16 | % | swap to closing/opening bracket |
17 | v | visual mode, enter, and then run command |
18 | split/Hexplore | Horizontal split/explore[1] |
19 | Vsplit/Vexplore | vertical split/explore |
20 | ! | run OS commands |
21 | !! | run OS commands and write the output |
22 | s/a/b | replace a by b |
23 | :%s/a/b/g | replace a by b in entire file |
24 | :12,20s/a/b/g | replace a by b in lines 12-20 |
25 | :15,23s/^/\/\//g | comment lines 15-23 |
26 | :15,23s/\/\/ | uncomment lines 15-23 |
27 | gg=G | Auto Indent the source file |
Some note about #18:
- To change between windows -> Ctrl+w, up/down/left/right
- To open current file in split horizontal view -> Ctrl+w, s
- To open current file in split vertical view -> Ctrl+w, v
Some other useful plugins
- Directory tree
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree
Vimrc file
~/.vimrc
possible contents:
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" Plugin 'Valloric/YouCompleteMe'
Plugin 'JamshedVesuna/vim-markdown-preview'
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'
" All of your Plugins must be added before the following line
Plugin 'Valloric/YouCompleteMe'
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set noexpandtab " Expand TABs to spaces
set smarttab
set smartindent
set cindent
set autoindent
set showmatch
set history=1000
set undolevels=1000
set visualbell
set noerrorbells
set foldmethod=indent
set foldlevel=99
set number
set tags=tags " This is to use ctags
set mouse=a
colorscheme ron
let vim_markdown_preview_github=1
" clang-format can be found at this address:
" https://github.com/rhysd/vim-clang-format
"
" follow instruction to install clang-format
" and then uncomment these lines:
" let g:clang_format#code_style = 'google'
" let g:clang_format#style_options = {
" \ 'TabWidth' : 4,
" \ "ColumnLimit' : 100,
" \ 'IndentWidth' : 4,
" \ 'IndentCaseLabels' : 'true',
" \ 'NamespaceIndentation' : 'All',
" \ 'Standard' : 'Auto'}