1

前言

我使用vim也有一段时日了,但依然还有许多强大的功能没有用上。中间也曾尝试过emacs和sublime,可能是先入为主了,总是感觉有些别扭,又回到vim。我把自己平时发现的一些使用的细节记录在此帖里,供自己与诸君翻阅,持续更新。

快捷键拾遗

  • 数字0,普通模式下快速移动到行首

-复制粘贴

shCtrl+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插件来管理插件

安装插件
shvim ~/.vimrc.bundles
//insert the follow
Bundle "githubUsername/pluginName"
//quit & vim
:BundleInstall
卸载插件
shvim ~/.vimrc.bundles
//desert the same line
:q 
vim
:BundleClean

状态栏增强

  • airline,可以提示模式,当前行百分比,已键入命令等,很好很强大

快速编辑

  • nerdcomment 快速注释的利器

suemi
1.5k 声望102 粉丝

程序猿一只,研究僧一枚


引用和评论

0 条评论