效果图来一个:
http://vim.spf13.com/
这个网站里面的vim配置非常全,推荐.
下面是对这个vim快捷键总结:
<Leader> 是","
复制粘贴:
系统拷贝: " + y
系统粘贴: ctrl + shift + v
复制一行: 0y1y: 0跳转到行首,y1y复制一行,
复制一个单词: ye :从当前位置复制到单词的末尾.
复制某一部分: y2/foo 会一直复制到第二个foo出现的地方
只删除不剪切: 将删除的内容放入 black hole register "_ 中如 "_dd 就可以将当前行内容删除并且不会放在任何寄存器中。
Nerd Tree: ctrl + e只是显示nerdtree, 但是如果需要显示当前文件的nerd tree: ,nt
r – 刷新当前目录及所有子目录
R – 刷新当前根路径及所有子目录
关闭或开启缩进的dark/light模式: <leader>ig
窗口: ctrl + w切换窗口, 先键入ctrl + w然后再键入c:关闭窗口,
翻页: ctrl + u向上翻页, ctrl + f 向下翻页
跳转: 首先需要安装:sudo apt-get install exuberant-ctags , ctrl+ ]跳转到定义,ctrl + t反向跳转,
ctrl+d
向下翻页 d(down) , ctrl+u
向上翻页 u(p)
0:跳到当前行首, ^:跳到当前行的第一个字符.
fa→ 跳到这行a字母的下一个出现的地方。(对比 ; )会查找下一个(上一个)地方. 3fa→ 在这行中查找a出现的第三个位置.
gg: 回到顶部, shift + g 回到底部.
w: 跳转到下一个单词的开头,W:下一个单词(跳过标点), b: 跳到上一个单词, B:跳到上一个单词(跳过标点)e: 跳转到下一个单词的结尾.
%:跳转对应的"([{" 处.
*(对比#) : 跳到当前光标的下一个(上一个) 相同单词的地方
ctrl +o/i : 向后跳转,向前跳转.
如果有多处文件定义,首先实行":ts",然后选择定义的地方即可进入
区域选择:
J→ 让所有行连接在一起
<(对比>) → 向左(右)对齐.
注释多行: 先用^跳转到行首,然后Ctrl-v进入列编辑模式,然后往下到你要注释段的末行,按I,这时光标会跳回选区的第一行,输入注释符,然后按Esc,完工。
所选择的行的末尾添加一些东西:
行选择: shift + v
选中{}里面的内容: 把光标放在{或}上面,按回车键即可以选中括号里面的内容. 另外选中(), [] 还有ifdef 宏定义体内的内容都是使用回车键选中即可
展开折叠:
zm 关闭所有
zr 打开
zR 打开所有
zc 折叠当前行
za 打开当前折叠,再执行一次关闭当前折叠
zd 删除折叠
zD 删除所有折叠
NERD Commenter :
,ca :切换注释方式,比如C/C++ 的块注释/* */和行注释//
,cc :注释当前行
,c+空格 :切换注释/非注释状态
,cs :以”性感”的方式注释
,cA :在当前行尾添加注释符,并进入Insert模式
,cu :取消注释
TagBar :
<leader>tt打开当前文件的tag目录
surround: 修改包围符号,举例: 'hello'
输入cs'" 变成"hello"
输入 cs'<q>变成 <q>hello</q> , 然后再输入 cst' 变回'hello'
输入ds'删除包围符号,变成hello
输入ysiw'添加包围符,变成'hello'
输入yss' 整行添加包围符,变成'hello,world'
修改配色:
echo colorscheme 256-jungle > ~/.vimrc.local, 所有的配色保存在~/.vim/bundle/vim-colors/ 以及 ~/.vim/bundle/vim-colorschemes/ 两个目录中.
也可以直接在打开的vim中输入:color molokai 切换色彩主题.
我主要用到是C,推荐几个:kruby
查找文件: ctrl + p 启用ctrlp插件,可以查找当前目录的,
Press <c-f> and <c-b> 切换模式,Files, Buffers 和 MRU Press <c-d> 文件名查找. Press <c-r> 正则表达式模式查找.
替换命令:
1、:s/old/new/ 把当前行中模式old的第一次出现替换为new
2、:s/old/new/g 把当前行中的每一个old替换为new
3、:50,100s/old/new/g 把第50-100行之间的old替换为new
4、:1,$s/old/new/g 把整个文本中的old替换为new
5、:%s/old/new/g 把整个文本中的old替换为new
6、:1,$s/old/new/gc 替换前要进行确认(想替换输入 y ,不想替换直接 回车)
去除windows编辑过的文件的换行符^M, "%s/\r/ ":
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
. 重复上一次操作
自动补全选择:首先用光标键选中需要补全的内容,然后ctrl + j,即可
显示变量和函数tag: <Leader>tt
前缀代表生效范围
inoremap就只在插入(insert)模式下生效
vnoremap只在visual模式下生效
nnoremap就在normal模式下(狂按esc后的模式)生效
这样可以减少快捷键所用到的键位组合的个数
一个组合可以有多种用途 就不用费劲心思思考 该映射哪个没被绑定过的键了
1. 升级到spf13 3.0版本,编辑模式 光标键变成 ABCD?
解决: 修改 .vimrc.before文件: let g:spf13_no_omni_complete = 1
2. 升级到spf13 3.0版本,提示:
neocomplete does not work with this version of Vim.
It requires Vim 7.3.885 or later with Lua support ("+lua").
解决: vim-nox
vim-gtk
vim-gnome
vim-athena 根据自己的系统类型安装其中的一个