之前,很喜欢使用Source Insight的全工程搜索功能。在转用emacs的第一时间,我的首要目标当时就是要找到一个类似的功能。后来,通过projectile实现了相应的功能。最早是使用grep,慢慢切换成了速度更快的ag。

         其实,这个功能使用也有2年了。但是,使用的时候其实还是有点小问题。比如,我搜索一个词语或者变量的时候,map、elf、TAGS等文件都可以被搜索到。或许,太懒了,也没啥追求,这个功能一直容忍了。毕竟,我自己想要的功能还在。

         最近,调试软件工程的时候,发现这个也到了不好忍受的程度了。因为,在map等文件命中的概率以及条目太多了,掩盖了我自己需要找的东西。于是,终于正面这个问题。

         先尝试了直接使用.projectile文件来进行排除,不知道是不是偶然,加了这个文件之后感觉emacs明显变慢。这似乎也是我当初一直使用git的原因。

         那么,既然git的数据库可以支持emacs的工程管理,git的.gitignore文件是否也能够让其识别到呢?测试了一下,还真可以!看来,这就是我这次要寻找的答案。

         找一个工程测试如下:

361_spacemacs中让projectile ag搜索时忽略指定文件_Emacs

         以上是没有增加配置的搜索结果,我的搜索也很简单了,就是一个main。看得出,结果十分凌乱。

361_spacemacs中让projectile ag搜索时忽略指定文件_Emacs_02

         以上是增加了文件排除之后的搜索结果,虽然换了一个搜索的关键词,但是也看得出这个结果清爽了不少了。