-
Clone and install this repo:
git clone https://github.com/zeoio/vimrc.gitmv vimrc/.vimrc ~/. -
Setup
vundle:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle -
Install bundles. Lanuch
vimand run::BundleInstall
All plugins are listed in file bundles.vim with detailed comments, just and plugins as you like.
:BundleCleanto clean up unused plugins:BundleInstallto 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更改排序方式,在按名字排序和按出现顺序排序间切换xtaglist窗口放大和缩小+打开一个折叠-将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/kj/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按照输入的正则表达式高亮单词,*跳转到当前高亮的下一个单词,#跳转到当前高亮的上一个单词,/跳转到任意下一个高亮单词,?跳转到任意上一个高亮单词