melpa搜了一下,也就26个package含有projectile名字 ( MELPA ), 很多我用不上或用其他基于counsel/ivy的替代插件。
远程连接的话ffip有优化。大多数插件是在用户输入头3个字符后启动服务器的命令行程序如find进行搜索,搜索结果通过网络连接返回。这样的缺点是初始可能搜索结果会很多,导致网络传送的数据量很大。
ffip的命令find-file-in-project-by-selected
解决办法是分两步走,允许用户输入glob pattern
传给服务器的命令行作为搜索关键字,比如“proj1/*/sub1/*file1"搜索proj1下目录sub1中文件名包含file1的文件,这样需要网络传送的数据就可以少很多。一旦数据到了客户端,就只在本地用lisp过滤,不需要额外的网络传送。
ffip的一些老的命令如find-file-in-project
没有这种两步过滤的功能,所以性能就一般。但是我也没办法改,因为这个项目不在我的名下(但现在我是主力程序员),所以要尊重其原作者的使用习惯。