前言
我使用vim也有一段时日了,但依然还有许多强大的功能没有用上。中间也曾尝试过emacs和sublime,可能是先入为主了,总是感觉有些别扭,又回到vim。我把自己平时发现的一些使用的细节记录在此帖里,供自己与诸君翻阅,持续更新。
快捷键拾遗
- 数字0,普通模式下快速移动到行首
-复制粘贴
sh
Ctrl+V可视模式选择复制区域 2y #追加到2号寄存器 *y #复制到系统寄存器 +y #复制到剪切板 2Y #覆盖到2号寄存器 #注意大小写啊,一个是追加,一个是重写 *p#将*寄存器的内容粘贴出来
ex命令
sh
:m,n s/pattern/dest/g #将m-n行里地pattern换为dest :% s/pattern/dest/g #%代表全局 :map #可以查看配置的快捷键键位,配上了airline之后再也不用担心记不住键位了
缓冲区
基本
shell
:ls #查看打开的所有缓冲区
缓冲区的跳转
vim有多个缓冲区,可使用它们打开不同的文件并跳转
shell
:bnum #跳到第num号缓冲区 :bdelete num #关闭第num号缓冲区 :bn(next) #跳到下一个缓冲区 :bp(previous) #跳到上一个缓冲区
缓冲区间的复制粘贴
shell
:m,ny num #通过复制到指定寄存器来完成
缓冲区的保存
:wall #保存所有缓冲区的内容
寄存器
vim共有9个寄存器,可以通过
:reg
或者
:dis
#查看所有寄存器信息
数字寄存器会根据你做的操作而改变,但是字母寄存器则不会,所以若长期需要复制某内容,保存在字母寄存器中
寄存器的规则
数字寄存器有十个,分别是:"0,"1,"2... "9(注意:数字前有个双引号),寄存器"0保存上一次复制(y)操作的文本,"1到"9寄存器保存最近9次删除的文本行(注意这个“行”字),"1保存的内容是最最近一次删除的内容(也就是说最后一次执行删除命令保存的内容)"2保存的是倒数第二次删除的内容,依此类推,直到"9,如果又有新的操作,那么"9的内容将会被"8的内容替换,先前”9的内容将被丢弃。
"":无名寄存器,p命令粘贴的内容,保存最近一次删除或复制的内容。
“-:(-是个减号)小删除寄存器(small delete register),前面说过要您注意这个”行“字,也就是说并不是所有删除的文本都会保存在数字寄存器中,如果你删除的只是一个单词或字母: dw或者x,那么这个单词并不会保存在"1寄存器中,而是保存在"-寄存器里面。所有不包含换行符的删除都会保存在此寄存器中。
“*:系统寄存器
(寄存器规则部分内容转载@_zhijun新浪博客)
寄存器的操作
ayy#复制改行到a寄存器中
#记住字母寄存器为大写时是追加模式
:m,ny num #将m至n行的内容复制到num号寄存器
"ap #将a寄存器内容粘贴到光标处
像变量一样操作寄存器
寄存器是特殊的变量,只要在寄存器名字前面加一个@就可以操作了
js
:let @1="" #清空1号寄存器 :let @1=@2 :echo @1+4
可视化模式
可视化模式下的插入删除
Ctrl+V进入可视化模式
移动光标选择行和区域
删除:选中区域后按d即可
插入:选中区域后按I(大写),插入字符后按ESC
插件
插件管理
我使用Vundle插件来管理插件
安装插件
sh
vim ~/.vimrc.bundles //insert the follow Bundle "githubUsername/pluginName" //quit & vim :BundleInstall
卸载插件
sh
vim ~/.vimrc.bundles //desert the same line :q vim :BundleClean
状态栏增强
- airline,可以提示模式,当前行百分比,已键入命令等,很好很强大
快速编辑
- nerdcomment 快速注释的利器
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。