常用快捷键
yy: 复制这一整行
dd: 剪切整行
gg:直达开头
G: 直达末尾
o: 另起一行进入插入模式
O: (大写o) 从上面另启一行进入插入模式
A: 在行尾插入
i: 进入插入模式(在光标前)
a: 进入插入模式(在光标后)
u: 撤回命令
0: 移动到行首
$: 移动到行尾
ctrl+d: 向下10行
ctrl+u: 向上10行
?:进入搜索模式
Ctrl+l: 清除搜索高亮
Vim 配置简化版
set nu ts=4 sw=4 ai cin et si sta hls nowrap mouse=a cb=unnamed bs=2
set fenc=utf-8 noswf scl=yes udf
syntax on
colorscheme retrobox
ino ' ''<left>
ino ( ()<left>
ino [ []<left>
ino { {}<left>
ino " ""<left>
nno <C-p> "+p
vno <C-y> "+y
ino <C-p> <esc>"+pa
nno <F4> ggvG$"+y
" 自动加载模板
" Windows
au BufNewFile *.cpp 0r C:/T.cpp | let &sw=&ts
" Linux
" au BufNewFile *.cpp 0r ~/T.cpp | let &sw=&ts
" 一键编译
" Windows
nno <F5> :w<CR> :! start cmd /k g++ -O2 % -o %<.exe && %<.exe && pause && exit<CR>
nno <F6> :! %<.exe <CR>
" Linux
" nno <Space>r :w\|!g++ -O2 % -o a && chmod +x a && ./a<CR>
" 自动注释
ino <C-\> <ESC>:cal F()<CR>a
vno <C-\> :cal F()<CR>
nno <C-\> :cal F()<CR>
fu! F() range
let p=getpos('.')|let m=mode()
for l in range(a:firstline,a:lastline)
let s=getline(l)|let s=s=~'^//'?substitute(s,'//','',''):'//'.s
call setline(l,s)
endfo
call setpos('.',p)
if m=='i'|star|en
endf