0% found this document useful (0 votes)
348 views1 page

Vim Cheat Sheet For Programmers Print

V cheat sheet

Uploaded by

K Kunal Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
348 views1 page

Vim Cheat Sheet For Programmers Print

V cheat sheet

Uploaded by

K Kunal Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

HOW-TO make Vim not suck Out of the Box: :help statusline :set nocompatible ruler laststatus=2 showcmd

showmode number Search :set incsearch ignorecase smartcase hlsearch Remove useless splash screen
Best tips: http://vim.wikia.com/ Best scripts: http://www.vim.org/scripts/index.php :map <F9> :e $HOME/_vimrc<CR> :map <F6> :so $HOME/_vimrc<CR>
~ ! # $ % ^ & * ( ) _ +
`
13 1
2 3
3
4 5 6 7 8
8
9 0 - =
2
14
^w
12 10 9
E R T Y U I O P { }
e r t y
0
2
u i !insert o p
0
[ ]
7 10 15
D F G H J K L : "
0
|
d
0
2
f g
6
h j k l ;
16
' \
\
Ctrl ^
7,11 9,16 15
Unused & Duplicate keys
Shift " 13
14
15
Legend:
16 The search direction is relative; next is the initial direction, previous is the opposite direction. n ; repeat same initial direction find. N , repeat opposite initial direction find. Note: ; , only searches cursor line, n N searches buffer.
Register name (0-9a-zA-Z) required :r file insert file \ :map \ :Explore<CR> manually type <,C,R,>
Motion req.; act between cursor & dst :w save :gui switch to GUI :ts list active tags 0 " before del/copy/paste to use register :buffers list files
Command :q quit :q! quit w/o save ^] jump to tag under cursor "+x cut to system clipboard reg. '+' blank file/buffer
Command and enter insert mode :e <file> edit file in new buffer ^t restore cursor before tag jump "+gP paste from system clipboard :bn next file
Moves cursor or defines range for op :source % ^p complete word 1 Number before any action repeats it :bp prev file
Search (! = reverse, " = forward) :exec '...' do cmd :ta Foo manual jump to tag 'Foo' 2p paste twice 3. repeat thrice :bd close file
ctags / diffs / folding 2 Repeat op to act on current line :bd!force close
Code formatting, whitespace, etc. soft ^ ! Start of Line 1st non-whitespace yy copy line dd del line :set lines=#
Extended functionality; req. extra chars hard 0 ! Start of Line column 0 [c prev diff << undent line >> indent line :set columns=#
Char arg req. $ " End of Line ]c next diff 3 # highlight words under cursor :winpos # # GUI
:help modes | move col 0 #| move col # :diffupdate :hi DiffText gui=none 4 ZZ save & quit ZQ quit w/o save
n Normal Esc ^[ ^c ^b page ! ^f page " resync :hi DiffDelete 5 zz center cursor line in window :help windows
i Insert a i r s ^u # page ! ^d # page " zh scroll left zl scroll right ^w or :wincmd
v Visual v V ^v ^q ^e scroll line ! ^y scroll line " zt scroll top zb scroll bottom
o Op pending c d y < > 1g start of file 0g end of file zR fold remove :changes 6 gg top of file
c Command Line : / ? ! #g goto line # G end of file zo fold open g; older change gf open file under cursor
word ( src , # , # len ); [[ begin this func { zc fold close g, newer change 7 ^a incr # under cursor (Dec / Hex)
]] begin next func { zi invert all ^x decr # under cursor (Dec / Hex)
WORD Foo ( src , # , # len ); :set matchpairs=(:),{:},[:],<:>,?:\: zr fold reduce 8 * start a "new" search
Startup % goto matching { } < > [ ] zm fold more :syntax enable
vim <filename> +123 goto line 123 :set filetype= ^p ^n next
vim <file> -t Foo edit at tag 'Foo' :s/Foo/Bar find Foo replace w/ Bar c cpp sh make perl python ^d undent ^t indent
vim <file> -c "/Foo" cmd: find 'Foo' & edit :s/Foo/Bar/g ...all instances on line q start recording noLe: chose only CnL Lype! ^x ^f filename completion :sp [<filename>]
GUI vim -g or gvim start GUI ver. :%s/Foo/Bar apply to whole file @ playback ^s spelling :set spell! edit in split window
GUI Linux :set guifont=ProggyTinyTT\ 12 cur line, cur line + # lines q stop recording :set fileformat= ^k dictionary ]s next bad
GUI OSX :set guifont=ProggyTiny\:h11 $ last line '< start of select @@ repeat unix or dos or mac ^t thesaurus :help spell :marks ` ' ^o
diff gvimdiff <file1> <file2> [<file3>] '> end of select then :w to convert ^r paste register 0-9a-zA-Z or $ ma mark local 'a'
bug Broken Keys Ctrl-I = Tab, Ctrl-[ = ESC = < > << >> :set tabstop=# set tab stop every #th col + clipboard (or '*') 'A goto global 'A'
Vim is still unable to map certain keys for your own use$ :set backspace=indent,eol,start :set expandtab! toggle hard/soft tabs " last del/copy % filename '' prev location
Caps, Ctrl-1, Ctrl-Shift-1, Ctrl-I, Ctrl-\, etc. allow backspace join lines :set listchars= tab:>-:trail:-,nbsp:%,eol:$ :set numbers! toggle line numbers
0 See: src/ops.c -c "/valid_yank_reg" for " reg. names :set list! toggle whitespace :set wrap! toggle linewrap display :Explore or :e .
6 See: src/normal.c -c "/nv_cmds" for g extra cmds :set autoindent! :set showmatch highlite matching ()
11 See: src/edit.c -c "/ctrl_x_msgs" for ^x insert cmds :set lisp lisp indent mode noremap + :s/^/\/\//<CR> block comment noremap - :s/^\/\///<CR> uncomment one of buffer last
:set shiftwidth=# indent width for ai
toggle auto-indent visible right margin indicator
Modes
Macro
Cmd
Code

:set colorcolumn=80
Ins
Move
Op
exec cmds in cur file
g z Z ^w ' " `
:help cmdline
Normal
Vim 7.3+
:version
Ctrl 1
x
1
record
macro
window$
WORD "
word "
decr. #
Ctrl ` Ctrl @
:suspend
$
s
toggle case
S
block select
ex mode
X
append
:set browsedir=
! "
\ Ctrl-K Ctrl-S (free)
Ctrl-L (redraw)
` near dup of '
Ctrl-Q = Ctrl-V
Ctrl-J = Ctrl-M = ^N
undent
2
> indent
2
? find !
.
repeat
cmd
/ find "
:buffer #
Windows
Cursor Bookmarks
File / Directory
:new
"prev"
prev auto-complete
10
12
f/F/t/T
16
Extra
tag
Find
:set shortmess+=I
begin
sentence
Ctrl ^ Ctrl 7 Ctrl 8 Ctrl 9 Ctrl 0
goto
match
%
goto col#
Ctrl \
hard %
end
sentence
cur line
!
"
cmd line
file/cursor info
goto eof /
goto line#
until char %
prev
identifier
Tab
Caps
goto mark
incr. #
extern filter
append &
end
WORD "
subst line
subst char
scroll line !
half page "
end
word "
A
a
Normal / Cancel block select
find char % extra
replace
char
& find char
page !
page " Ctrl '
Ctrl / Ctrl . Ctrl , Ctrl M
Ctrl H Ctrl J
goto mark
%
register
Bottom
screen
# &
"
Top screen
man page
identifier
misc.
:redo
paste
!
Ctrl _ Ctrl 5 Ctrl 4
undo line
undo
Ctrl I Normal
soft %
next
identifier
copy
& repeat :s
insert %
ctags return
# until char Replace
M
m
Ctrl 3
http:/michael.PeopleOfHonorOnly.com/vim/
!"#$%&'( 2011
May be freely dlsLrlbuLed!
Sharlng ls Carlng.
paragraph
"
auto-
format
Ctrl ;
paste
!
paragraph
misc.
redraw
open
open
prev mark scroll line "
copy line
half page !
select
chars
"next"
f/F/t/T
Join lines
Ctrl =
,
ctags identifier
<
v
9
B ! WORD quit
4
extra
5
& del char C
del char % c b ! word change
0
2
change & V
select
lines
N
n
"prev"
find
find
"next"
11
:hi DiffAdd guifg=#rrggbb
:hi DiffChange guibg=#rrggbb
.,.+#
:help c_CTRL-R
Insert mode
Middle
screen
Esc
Revision 2.0
Sept. 11, 2011
Foo dst
Z
z
q
Q
dst
Note: There is no whitespace in-between 'Foo(src,' but before/after 'dst,'
del &
del
@
play
macro
W
w
set mark
Tags
Diff
Folding
Syntax
:help recording
Code
:help movement
:help range
w
c
n
s
v
o
=
h
j
k
l

:switch to next
:close!
:new
:split horz.
:vsplit vertical
:only maximize
all same size
move to win &
move to win "
move to win !
move to win %
Vim Cheat Sheet for Programmers
Changes
Convert <eol>

You might also like