辛星跟您玩转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。期待您的关注。
最新文章
- 学习python函数笔记之一
- 在macbook上搭建ubuntu工作环境
- IEEE参考文献格式
- 使用Burpsuite破解Webshell密码
- 【转】在Eclipse中建立第一个Servlet程序
- Java-->;List&;Set
- urllib,urllib2,requests对比
- MySQL基础之第5章 操作数据库
- js页面刷新一次
- 201521123001《Java程序设计》第10周学习总结
- 11、ABPZero系列教程之拼多多卖家工具 拼团提醒功能页面实现
- <;三>;企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库
- React文档(二十)不使用JSX
- js 两数的最大公约数
- 理解BFC
- 3、LwIP协议栈规范翻译——概述
- linux command ------ dmesg
- JavaScript的事件对象_滚轮事件
- 怎样搭建一个自有域名的 WORDPRESS 博客?
- 通过Fiddler进行手机抓包
热门文章
- idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
- 【Codeforces Round #423 (Div. 2) C】String Reconstruction
- vmware下minimum安装centos后配置网络
- hdu 1024 最大m子段和
- SpringMvc 系统启动时加载数据到内存中
- Servlet深入学习,规范,理解和实现(中)——深入理解Tomcat(一)
- codeforces 710A King Moves(水)
- NGINX 代理以及 HTTPS (一)
- sql中 where语句的用法
- Vbox下创建Linux和Windows的共享文件夹