vim基础学习之搜索功能
当我们使用vim看源码的时候,我们可能会碰到一个方法或者变量,我们想要知道这个变量在其他地方的使用情况。这时候我们经常的做法就是退出当前的文件,或
者是重新切换一个终端,然后使用grep或者find等shell命令进行搜索。其实,我们完全可以在不离开文件的情况下,在vim的命令行中进行搜索。
vim内部搜索有两种方式,一直就是调用外部的搜索工具进行搜索grep。另外一种就是自带的内部搜索vimgrep
其中,grep允许我们就行设置,从而可以自主选择我们希望使用的搜索工具以及搜索结果样式。例如
我们可以通过在vimrc中添加如下内容,来把ack作为grep默认的搜索工具
set grepprg=ack\ --nogroup\ $*
当然,你不要忘了配置ack的链接,如下
sudo ln -s /usr/bin/ack-grep /usr/local/bin/ack
我们可以通过如下方法设置搜索结果样式
set grepformat=%f:%l:%c:%m
%f:文件名
%l:行号
%c:列号
%m:匹配行的文本
除了上述的外部搜索命令,vim还支持内部搜索命令,vimgrep。它其实就跟grep差不多。
这些搜索命令,我们使用以后,主要的就是生成一个搜索列表,这个搜索列表会保存在quickfix中,我们只要调出这个窗口,我们就可以很方便的查看搜索结果并>能跳转到搜索结果了。
vim基础学习之搜索功能的更多相关文章
- vim基础学习之自动补全功能
		本章我们学习自动补全功能1.自动补全优先从当前的编辑区获得补全列表例如:我们写下如下内容 aaaaa aabbb aaab 当我们再次输入aa,然后我们按下Tab的时候,会弹出一个包含 aaaaa a ... 
- vim 基础学习之查找
		普通模式下 /->正向查找 n-向下查找 N-向上查找 ?->反向查找 N-向下查找 n-向上查找 <C-r><C-w> <C-r>-引用,例如引用寄存 ... 
- vim 基础学习之替换
		替换命令substitute可以用来查找跟替换操作. :[range]s[ubstitute]/{pattern}/{string}/[flags] [count] range-命令作用范围(缺省的情 ... 
- vim 基础学习之global
		global命令可以在指定模式下,匹配行上进行Ex命令 使用格式: :[range]g[lobal]/{pattern}/[cmd] range-是执行范围(如果缺省,是%) global-命令关键字 ... 
- vim 基础学习之文件跳转
		1. ''-当前文件上次跳转之前的位置2. '.-当前文件上次修改的位置,只要是发生了可能导致变化的命令操作就会被标记,哪怕实际结果没有变化3. '^-当前文件上次插入的位置,只要是发生了插入操作命令 ... 
- vim 基础学习之重复
		重复命令 .: 这个命令可以重复之前的操作.例如你执行了dd操作,然后. 就会删除当前行还有从进入插入模式到退出插入模式,之间的修改也算是一次操作.比如,你执行了i aaa <Esc>然后 ... 
- vim基础学习1---简单命令
		1:vim abc:如果有abc文件,则打开,否则创建之后打开 2:输入"i",才可以输入东西 3:按Esc,它是底行模式,再敲":wq 回车" 保存退出. 4 ... 
- vim基础学习之EX命令
		:tabnew -创建新标签 :split(sp)-垂直分割窗口 如果没有打开新的文件,那么会打开原来窗口的文件 :vsplit(vsp)-水平分割窗口 如果没有打开新的文件,那么会打开原来窗口的文件 ... 
- vim 基础学习之可视模式
		1. 选择模式这个模式必须通过可视模式进入.在可视模式下,我们通过 <C-g>来把我们的可视选中块作为选择模式下的操作块. 这时候我们输入可见字符,就会把这个块给覆盖掉.例如aaa bbb ... 
随机推荐
- 隐藏tomcat nginx版本信息
			Tomcat --首先备份tomcat .首先找到这个jar包,$TOMCAT_HOME/lib/catalina.jar .解压catalina.jar之后按照路径\org\apache\catal ... 
- 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
			1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ... 
- GridView 绑定 ObjectDataSource
			创建GridView <asp:GridView ID="GridView1" runat="server" DataSourceID="Obj ... 
- iOS: 零误差或极小误差的定时执行或延迟执行?
			问题如下: 节奏类游戏需要执行很多的跟音乐节拍相关的操作,并且为了保证节奏感,需要让操作跟节拍的关系十分紧密.对两者间隔要求不能超过0.02秒或更低. 目前使用了 GCD 中的 asyncAfter( ... 
- PostgreSQL Replication之第四章 设置异步复制(4)
			4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ... 
- UCOSii任务就绪表之OSUnMapTbl[16*16]的数组是如何得到的
			我比较喜欢图,如下图: 图1: INT8U const OSUnMapTbl[]数组内的数据. 1.UCOSii的优先级相关内容 首先先介绍一个概念:优先级.UCOSii的优先级按倒叙排列,即优先级数 ... 
- gitHub上如何设置或者取消电子邮箱提醒
			原文链接:点我 我们正常注册的gitHub一般应该都是电子邮箱的方式,在注册账号时可能选择或者默认给了各种提醒,但是gitHub的邮箱提醒真的就比较烦人了,特别是最近团队开发项目,什么动态都有提醒,就 ... 
- ASP.NET WEB API微信支付通知接口,返回xml数据,微信服务器不识别问题
			原文:ASP.NET WEB API微信支付通知接口,返回xml数据,微信服务器不识别问题 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/MrTra ... 
- 05001_Linux简介
			1.Linux的概述 (1)Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯•托瓦兹)起初开 ... 
- 【转】30分钟掌握 C#6
			[转]30分钟掌握 C#6 1. 只读自动属性(Read-only auto-properties) C# 6之前我们构建只读自动属性: public string FirstName { get; ... 
