-
Clone and install this repo:
git clone https://github.com/zeoio/vimrc.git
mv vimrc/.vimrc ~/.
-
Setup
vundle
:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
-
Install bundles. Lanuch
vim
and run::BundleInstall
All plugins are listed in file bundles.vim
with detailed comments, just and plugins as you like.
:BundleClean
to clean up unused plugins:BundleInstall
to install newly added plugins:BundleInstall!
to upgrade all plugins
:w 保存,但不退出
:wq 保存并退出
:x 同:wq
:q 退出,如果当前文件没有保存,禁止退出
:q! 不保存退出
:w file 将内容保存至文件file中,注意:此时编辑的仍为原文件,若文件file存在,:w file1将禁止执行
:w! file 将内容覆盖保存至文件file中.
:set 显示已设置的环境状况
:set all 显示所有的环境设置选项
:set nu 显示行号
:set nonu 不显示行号
:10,20d 删除第10行至第20行的内容
:10d 删除第10行的内容
:%d 删除全部内容
:10,20co30 将第10行至第20行的内容复制到第30行之后
:10,20mo30 将第10行至第20行的内容移动到第30行之后
:1,$s/old/new 将第1行至最后一行中的old替换成new
:1,$s/^/new 将第1行至最后一行的内容前面插入new
:10 将游标移至第10行
:%!xxd 将当前文本转换为16进制格式。
:%!od 将当前文本转换为16进制格式。
:%!xxd -c 12 将当前文本转换为16进制格式,并每行显示12个字节
:%!xxd -r 将当前文件转换回文本格式
:split 水平分割视窗(可加文件名顺便开启另一文档)
:vsplit 垂直分割视窗(可加文件名顺便开启另一文档)
:diffsplit filename 以分割视窗和文档filename作比较
-
a
在当前游标之后输入 -
A
在当前行之末输入 -
i
在当前游标之前输入 -
I
在当前行之首输入 -
o
在当前行之下新增一行,并在新增行输入 -
O
在当前行之上新增一行,并在新增行输入 -
h
向左移动一个位置 -
l
向右移动一个位置 -
j
向下移动一个位置 -
k
向上移动一个位置 -
b
左移一个单词,至词首 -
w
右移一个单词,至词尾 -
W
右移一个单词,跳过标点符号 -
e
跳到目前单词的尾端 -
0
移到当前行行首 -
^
移到当前行行首有效字符位置 -
$
移到当前行行尾 -
+
移至下一行的行首 -
-
移至上一行的行首 -
H
移至视窗的第一行 -
M
移至视窗的中间一行 -
L
移至视窗的最后一行 -
gg
移至该文件的第一行 -
G
移至该文件的最后一行 -
nG
移至该文档的第n行 -
n+
下移n行 -
n-
上移n行 -
{
上一段(以空白行分割) -
}
下一段(以空白行分割) -
[{
跳到目前区块开头 -
]}
跳到目前区块结尾 -
%
跳到目前对应的括号上(使用各种括号) -
x
删除游标所在字元 -
X
删除游标前一字元 -
dw
从游标当前位置开始向后删除一个单词 -
db
从游标当前位置开始向前删除一个单词 -
d0
从行首删除至当前游标位置 -
d$
从游标当前位置删除至行尾 -
dd
删除游标所在行 -
D
同d$ -
s
修改游标所在字元,修改完成后按Esc键结束 -
S
修改整行内容,修改完成后按Esc键结束 -
r
替换当前游标所在字元 -
R
进入替换状态,直至按Esc键结束 -
cw
修改一个单词(从游标位置至词尾) -
cb
修改一个单词(从词首至游标位置) -
cc
修改整行内容,完成后按Esc键结束,同S -
c0
修改行首至游标位置的内容 -
c$
修改游标位置至行尾的内容 -
~
游标所在字元大小写切换 -
nx
删除n个字元 -
ndd
删除n行 -
ns
修改n个字元 -
u
撤销上一指令的结果 -
"+y
从vim复制到系统剪切板 -
"+p
表示从系统剪切板粘贴到vim -
"+d
剪切 -
/字符串
从当前游标向后查找该字符串 -
?字符串
从当前游标向前查找该字符串 -
n
从当前游标向后查找下一个字符串 -
N
从当前游标向前查找下一个字符串 -
#
往前搜索目前游标所在的字 -
*
往后搜索目前游标所在的字 -
fx
在目前行往后搜索字元x -
gd
跳到目前游标所在的字的定义位置(编程时用,跳到定义变量/函数的地方) -
.
重复上一条指令 -
Ctrl+f
视窗下卷一页 -
Ctrl+b
视窗上卷一页 -
Ctrl+d
视窗下卷半页 -
Ctrl+u
视窗上卷半页 -
Ctrl+e
视窗下卷一行 -
Ctrl+y
视窗上卷一行 -
Ctrl+w+j
跳到下面的分割窗 -
Ctrl+w+k
跳到上面的分割窗 -
Ctrl+w+h
跳到左边的分割窗 -
Ctrl+w+l
跳到右边的分割窗 -
Ctrl+n
自动补齐文档内的下一个可能的字 -
Ctrl+p
自动补齐文档内的上一个可能的字 -
Ctrl+g
显示正在编辑的文件名,当前游标所在行数,文件总行数,文件是否被修改
:tabnew filename 建立对指定文件新的Tab
:tabc 关闭当前Tab
:tabo 关闭其他所有Tab
:tabs 查看所有打开的Tab
:tabp 前一个Tab
:tabn 后一个Tab
-
Ctrl+w+h
光标定位在左侧树形目录 -
Ctrl+w+l
光标定位在右侧文件显示窗口 -
Ctrl+w+w
光标自动在左右侧窗口切换 -
Ctrl+w+r
移动当前窗口的布局位置 -
o
在已有的窗口中打开文件,目录,或者书签,并跳转到该窗口 -
go
在已有的窗口中打开文件,目录,或者书签,但不跳转 -
t
在新Tab中打开选中的文件/书签,并跳转到新的Tab -
T
在新Tab中打开选中的文件/书签,但不跳转 -
i
水平分割一个新窗口打开选中文件,并跳转到该窗口 -
gi
水平分割一个新窗口打开选中文件,但不跳转 -
s
垂直分割一个新窗口打开选中文件,并跳转到该窗口 -
gs
垂直分割一个新窗口打开选中文件,但不跳转 -
O
递归打开选中结点下的所有目录 -
x
合拢选中结点的父目录 -
X
递归合拢选中结点下的所有目录 -
p
跳到父目录 -
P
跳到根节点 -
K
跳到当前目录下同级的第一个结点 -
r
递归刷新选中录 -
R
递归刷新根目录 -
m
显示文件系统菜单 -
I
切换是否显示隐藏文件 -
F
切换是否显示文件 -
B
切换是否显示书签 -
q
关闭NerdTree窗口 -
?
切换是否显示Quick Help -
gT
前一个Tab -
gt
后一个Tab
:TlistOpen 打开taglist窗口
:TlistClose 关闭taglist窗口
<CR>
跳到光标下tag所定义的位置o
在一个新打开的窗口中显示光标下tag<Space>
显示光标下tag的原型u
更新taglist窗口中的tags
更改排序方式,在按名字排序和按出现顺序排序间切换x
taglist窗口放大和缩小+
打开一个折叠-
将tag折叠起来*
打开所有的折叠=
将所有的tag折叠起来[[
跳到前一个文件]]
跳到后一个文件q
关闭taglist窗口
<CR>
跳到tag定义的位置p
同上,但是光标留在Tagbar窗口P
在预览窗口显示tag<C-N>
跳到下一个顶级tag<C-P>
跳到上一个顶级tag<Space>
显示tag的原型v
隐藏非公共的tag+
打开折叠-
关闭折叠o
切换折叠*
打开所有的折叠=
关闭所有的折叠zj
跳到下一个折叠zk
跳到上一个折叠s
折叠排序c
折叠自动关闭选项x
窗口放大或缩小q
关闭tagbar窗口
,vv
在文件中搜索当前光标下的单词,vV
全词匹配搜索,va
与vv相似,搜索结果追加在上次搜索结果之后,vA
与vV相似,搜索结果追加在上次搜索结果之后,vr
替换,vo
打开选项菜单
-
ctrl+f
在三种查找模式中相互切换 -
ctrl+b
同上 -
ctrl+y
创建新文件和对应的父目录 -
ctrl+d
切换到只查找文件名而不是全路径 -
ctrl+j/k
j/k进行上下选择 -
ctrl+x
在当前窗口中水平打开文件 -
ctrl+v
同上,垂直分屏 -
ctrl+t
在tav中打开 -
ctrl+z
来标识或取消标识文件,然后按ctrl+o来打开文件 -
ctrl+n
在提示历史中选择下一个字符串 -
ctrl+p
在提示历史中选择上一个字符串 -
,fu
进入当前文件的函数列表搜索 -
,fU
搜索当前光标下单词对应的函数
:A 在新Buffer中切换到c/h文件
:AS 横向分割窗口并打开c/h文件
:AV 纵向分割窗口并打开c/h文件
:AT 新建一个标签页并打开c/h文件
zi
打开折叠zv
查看此行zm
关闭折叠zM
关闭所有折叠zr
打开zR
打开所有zc
折叠当前行zo
打开当前折叠
,ca
在可选的注释方式之间切换,cc
注释当前行,c
切换注释/非注释状态,cs
以性感的方式注释,cA
在当前行尾添加注释符,并进入Insert模式,cu
取消注释,c$
注释当前光标到该行结尾的内容
,m
高亮或反高亮一个单词,n
清除当前的单词高亮,若光标处无高亮的单词就清除所有的单词高亮,r
按照输入的正则表达式高亮单词,*
跳转到当前高亮的下一个单词,#
跳转到当前高亮的上一个单词,/
跳转到任意下一个高亮单词,?
跳转到任意上一个高亮单词