
天天
你是不是经常遇到这样的场景:明明记得写过某个功能,但就是找不到在哪个文件里?或者接手一个大项目,想找某个API的调用位置,结果用IDE搜索半天还在转圈圈?
今天给你介绍一个超级好用的工具 —— **Hound**,一个闪电般快速的代码搜索引擎。用过之后,你会发现找代码就像在Google里搜东西一样简单!
https://appstore.lazycat.cloud/#/shop/detail/com.luck.lazycat.hound
## Hound有啥特别的?
### 1. **速度快到离谱**
Hound基于Google工程师Russ Cox的三元组索引算法,核心是预先建立索引,搜索时几乎是瞬间返回结果。不管你的代码库有多大,搜索都是毫秒级响应。
### 2. **支持多种版本控制系统**
支持Git、Mercurial、SVN、Bazaar,还有本地文件夹。基本上你用的版本管理工具它都支持。
### 3. **Web界面超友好**
有一个React写的前端界面,在浏览器里就能搜索,结果还能分享链接给同事。
## 10分钟快速上手
应用打开后,只有一个搜索框,随便输入一个单词

下方很快出现了搜索结果,它默认的配置是这个config.json

打开之后,发现是这种配置

聪明的你肯定想到了要改这个文件,配置成我们的地址。
### 基础配置:索引单个仓库
最简单的配置,只需要指定仓库地址:
以这个仓库为例

它的 github 地址是https://github.com/9001/copyparty/tree/hovudstraum

注意保存之后,要重启应用才会生效。
重启后可以看到效果了:

### 进阶配置:管理多个项目
如果你有多个项目要管理,可以这样配置:
```json
{
"dbpath": "db",
"max-concurrent-indexers": 2,
"repos": {
"backend-api": {
"url": "https://github.com/team/backend.git",
"ms-between-poll": 60000,
"vcs-config": {
"ref": "main"
}
},
"frontend-app": {
"url": "https://github.com/team/frontend.git",
"ms-between-poll": 60000,
"vcs-config": {
"ref": "develop"
}
},
"mobile-app": {
"url": "https://github.com/team/mobile.git",
"ms-between-poll": 120000
}
}
}
```
几个关键配置项:
- `ms-between-poll`:多久更新一次索引(毫秒),默认30秒
- `max-concurrent-indexers`:并发索引数,项目多的话可以调大
- `vcs-config.ref`:指定分支,默认是默认分支
### 索引私有仓库
#### 使用SSH密钥(推荐)
```json
{
"repos": {
"private-repo": {
"url": "git@github.com:company/private-project.git"
}
}
}
```
前提是你的服务器已经配置好了SSH密钥。
#### 使用访问令牌
对于GitHub私有仓库,可以在URL中加入访问令牌:
```json
{
"repos": {
"private-repo": {
"url": "https://YOUR_TOKEN@github.com/company/private-project.git"
}
}
}
```
Hound支持强大的正则表达式,比如:
- `func.*Test` - 查找所有测试函数
- `TODO|FIXME` - 查找所有待办事项
- `console\.(log|error|warn)` - 查找所有console输出
在搜索框旁边可以选择文件类型,只搜索特定类型的文件。
如果配置了多个仓库,可以选择只在特定仓库中搜索。

当线上报错显示"Invalid user token",你可以直接搜这个错误信息,瞬间找到所有相关代码位置。
## 常见问题解答
**Q: Hound和IDE的搜索有啥区别?**
A: IDE搜索通常只能搜当前打开的项目,而且大项目会很慢。Hound可以同时搜索几十个仓库,速度还特别快。
**Q: 能搜索二进制文件吗?**
A: 不能,Hound只索引文本文件。图片、视频、编译后的文件都不会被索引。
**Q: 支持中文搜索吗?**
A: 支持!中文变量名、注释都能搜索。

**Q: 索引会占用很多磁盘空间吗?**
A: 索引大小通常是源代码的30%-50%。比如1GB的代码,索引大概300-500MB。
**Q: 可以搜索特定分支吗?**
A: 可以,在配置文件中用`vcs-config.ref`指定分支名。
**编辑器集成**:Sublime Text和Vim都有Hound插件,可以直接在编辑器里搜索。
## 写在最后
Hound真的是那种用了就回不去的工具。不管你是个人开发者还是团队协作,Hound都能大幅提升你的开发效率。
祝你代码搜索愉快!
---
**项目地址**:https://github.com/hound-search/hound
**官方文档**:https://github.com/hound-search/hound/tree/main/docs
评论
0暂无评论