辛星跟您玩转vim第三节之程序员特需要的移动方式
前面第二节我首先值得一提的是,我的vim教程pdf版本已经写完了,大家可以去下载,这里是csdn的下载地址:csdn下载,如果左边的下载地址挂掉了,也可以自行在浏览器下面输入如下地址进行下载:http://download.csdn.net/detail/xinguimeng/7714213 ,当然,如果你是百度网盘的忠实用户,也可以借助于百度网盘,我也同步上传到百度网盘了,下载地址如下:百度网盘下载 ,如果地址挂了,可以在浏览器中输入:http://pan.baidu.com/s/1sj9CLXz 来下载。
前面我们介绍了如何在命令模式下移动光标,但是对于程序员来说远远不够,主要是程序员的需求有点特殊,而vim的开发者也是程序员,自然,程序员何必为难程序员,但是,程序员究竟有哪些需求是特别重要的呢?
***********************************程序员特供*******************************
1.在我们用类C语言去编程的时候,经常会被层层嵌套的大小中括号给搞得头晕脑胀的,别急,作为神器的vim已经帮我们想好了一个解决方案,那就是我们只需要把光标移动到某一个括号上,然后在命令模式下执行%命令,它会自动把光标定位到与之对应的括号上,不管是小括号,大括号,还是中括号,都是适用的。如果执行了该命令而没有匹配到,多半是程序编写不正确。其实我们不用执行%命令,当我们移动到括号的一部分的时候,另一部分会自然而然的高亮显示。
2.有时候我们需要高亮显示行号,我们可以用:set number来显示行号,注意,我们在插入模式下,先用ESc键回到命令模式下,然后用:进入底行模式,然后输入set number,这样才可以显示行号,而:set nonumber则会取消显示行号。
3.有时候我们编写程序,如果是c、cpp等编译型程序,经常会说编译到某一行的时候出现错误,由于我们的程序动辄就几百行,如果是靠鼠标的滚轮和眼睛去找到它,那无疑是非常费力的,在vim下,我们可以用G命令来搞定它,这里的G是“go”的意思,表示“前往,到达”,比如我们想到达200行,那就可以在命令模式下输入200G来做到。
4.值得注意的是,这里的G是需要大写的,通常我.喜欢按住shifit然后再按下g键就ok了。跳转到其他行也是类似的,我就不亲自打命令了。
5.有时候,我们并不知道具体的行数,只是想看看大致的某一部分代码,我们可以用%命令,比如50%表示跳转到文件大约百分之五十的地方,当然,这里的50也可以换成其他的数字,来表示各种不同的位置。
**************************************搜索*********************************
1.咱们程序员经常需要查看某个函数的功能等等,那么如何快速的通过变量名和函数名来查找呢?
2.当然,咱们后面会学习好几种更强大的方法。但是,这里的使用/加一个单词的形式来做它无疑是最快捷的方式,然后咱们可以用数字加n的组合表示来定位第几个单词,也可以直接用n命令来定位到下一个。
3.如果我们单纯的想看看某个函数名,比如该函数名叫xin,那么我们可以用/\<xin\>来做到,其中\<表示匹配一个单词的开头,而\>表示匹配一个单词的结尾。
***************************正则表达式***********************************
1.没错,我想大多数程序员都会正则表达式把,至于有多熟悉,那和自己工作的方向有关,但是,至少应该懂点。
2.我们前面说过用定界符来只搜索xin这个变量或者函数名,没错,咱么也可以用/^xin$来匹配这一行之中只有一个xin单词的情况。
3.我们可以用.来匹配任何字符,比如x.g可以匹配到xinxing,还可以匹配到xig,还可以匹配到xiig。
4.那么可能会有人说,如果我想匹配xin.呢?即前三个字符是xin,后一个字符是一个点,那么我们可以用反斜线来给它转义,即xin\.来表示xin.这样。
*****************答读者问*******************************
1.可能大家读到这里,我不知道读者是什么感受。
2.不过vim确实对程序员提供了良好的支持,这也是vim和emacs能够牢牢的吸引程序员的一大魅力之处。
3.辛星vim,期待您的关注。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。