辛星跟您玩转vim第三节之程序员特需要的移动方式

时间:2022-10-25 19:48:41

      前面第二节我首先值得一提的是,我的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,期待您的关注。