Vim cheat sheet_for_programmers_colorblind

skywalker1114 3,997 views 1 slides Nov 01, 2012
Slide 1
Slide 1 of 1
Slide 1
1

About This Presentation

vim cheat sheet


Slide Content

HOW-TO make Vim not suck Out of the Box::help statusline:set nocompatible ruler laststatus=2 showcmd showmode numberSearch:set incsearch ignorecase smartcase hlsearchRemove 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
2u i

inserto p
0
[• ]•
7 10 15
D F• G H J K L : "•
0
|
append d
0
2f• g•
6
h j k l ;
16
'• \•
\
Ctrl^
7,11 9,16 15
Unused & Duplicate keys
Shift⇧
13
14
15
Legend:
16The 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 fileinsert file
\:map :Explore<CR> manually type <,C,R,>
Motion req.; act between cursor & dst :wsave :gui switch toGUI:ts list active tags
§0
"• before del/copy/paste to use register:bufferslist
Command :qquit :q! quit w/o save^] jump to tag under cursor "+xcut 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 "+gPpaste from system clipboard :bnnext file
Moves cursor or defines range for op :source % ^p complete word
1
Number before any action repeats it :bpprev file
Search (↖ = reverse, ↘ = forward) :exec '...'do cmd :ta Foomanual jump to tag 'Foo' 2p paste twice 3.repeat thrice:bdclose file
ctags / diffs / folding
2
Repeat op to act on current line :bd!force close
Code formatting, whitespace, etc.
soft
^⇤ Start of Line1st non-whitespace yy copy line dddel line :set lines=#
Extended functionality; req. extra chars
hard
0⇤ Start of Linecolumn 0 [cprev diff << undent line >>indent line :set columns=#
Char arg req. $⇥ End of Line ]cnext diff
3# highlight words under cursor :winpos # # GUI
:help modes |move col 0#|move col # :diffupdate :hi DiffText gui=none 4ZZ save & quit ZQquit w/o save
n Normal Esc ^[ ^c ^bpage ↑ ^fpage ↓ resync :hi DiffDelete 5zz center cursor line in window :help windows
i Insert a i r s ^u½ page ↑ ^d½ page ↓ zh scroll left zlscroll right^w•or:wincmd •
v Visual v V ^v ^q ^escroll line ↑ ^yscroll line ↓ zt scroll top zbscroll bottom
o Op pending c d y < > 1gstart of file0gend of file zRfold remove :changes §6gg top of file
c Command Line: / ? ! #ggoto line #Gend of file zofold open g;older change gf open file under cursor
word (src,␢ ,␢len); [[begin this func { zcfold close g,newer change
7^a incr # under cursor (Dec / Hex)
]]begin next func { ziinvert all ^x decr # under cursor (Dec / Hex)
WORD Foo(src,␢ ,␢len); :set matchpairs=(:),{:},[:],<:>,?:\:zrfold reduce
8* start a "new" search
Startup %goto matching { } < > [ ] zmfold more :syntax enable
vim <filename> +123 goto line 123 :set filetype= ^p ^nnext
vim <file> … -t Foo edit at tag 'Foo' :s/Foo/Bar find Foo replace w/ Bar c cpp sh make perl python ^d undent ^tindent
vim <file> … -c "/Foo" cmd: find 'Foo' & edit:s/Foo/Bar/g ...all instances on lineq•start recordingNote:&chose&only&ONE&type!^x•^ffilename completion :sp [<filename>]
GUIvim -g or gvim start GUI ver. :%s/Foo/Bar apply to whole file@•playback ^sspelling :set spell! edit in split window
GUILinux:set guifont=ProggyTinyTT 12 cur line, cur line + # linesqstop recording:set fileformat= ^kdictionary ]snext bad
GUIOSX :set guifont=ProggyTiny\:h11 $last line '<start of select@@repeat unix or dos or mac ^tthesaurus :help spell :marks ` ' ^o
diff
gvimdiff <file1> <file2> [<file3>] '>end of select then :w to convert ^r•paste register 0-9a-zA-Z or … mamark local 'a'
bug
Broken Keys Ctrl-I = Tab, Ctrl-[ = ESC = < > << >> :set tabstop=# set tab stop every #th col +clipboard (or '*') 'Agoto 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:Exploreor: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 modenoremap + :s/^/\/\//<CR> block comment noremap - :s/^\/\///<CR> uncomment one ofbuffer last
:help cmdline
A
a
:help range
§11
:hi DiffAdd guifg=#rrggbb
:hi DiffChange guibg=#rrggbb
.,.+#
:help c_CTRL-R
Insert mode
10
12
:help folding
9
dst
Z•
z•
:help movement
set mark
M
m•
quit
4
extra
Ctrl 3
prev
identifier
Tab
Caps
goto mark
incr. #
extern filter
append ⇥
end
WORD ↘
subst line
subst char
scroll line ↑
del ⇥
del
@•
play
macro
W
w
half page ↓
end
word ↘
↖ word
N
n
"prev"
find
find
"next"
undo line
undoq•
Q
Normal / Cancel
block select
find char →
extra
replace
char
← find char
page ↑
page ↓
Middle
screen
B↖ WORD
5
← del charC
del char → c bchange
0
2
change ⇥V
select
lines
select
chars
v
dst
http:/michael.PeopleOfHonorOnly.com/vim/
Copyleft&©&2011
May&be&freely&distributed!
Sharing&is&Caring.
paragraph

auto-
format
Ctrl ;
paste ⤒

paragraph
misc.
redraw
open ⤒
open ⤓
prev mark
Ctrl '
Ctrl =
,
ctags identifier
misc.
:redo
paste ⤓

Ctrl _ Ctrl 5 Ctrl 4
Ctrl I Normal
soft ⇤
next
identifier
copy
⇥ repeat :s
insert ⇤
ctags return
← until char
until char →
scroll line ↓
copy line
half page ↑
Replace
Ctrl , Ctrl M
Ctrl H Ctrl J
goto mark

register
Bottom
screen
↓←

Top screen
man page
identifier
"next"
f/F/t/T
Join lines
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


Ex cmd line
file/cursor info
goto eof /
goto line#
<
Ctrl / Ctrl .
: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
f/F/t/T
16
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
Esc
Revision 2.0
Sept. 11, 2011
: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 diff
:help tags
Code
:help syntax
:help changes
convert <eol>
:help recording
Note: There is no whitespace in-between 'Foo(src,' but before/after 'dst,'
Foo
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
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 →
Tags