🌠 a crystal clear command-line dictionary, written in Go, supported Linux/Win/Mac
Go语言实现的简洁好用的命令行词典,跨平台、易于安装、持续维护更新
本项目受无道词典启发,在复刻Wudao核心功能的基础上增加了更丰富的特性。我是Wudao的多年用户,日常工作生活重度依赖随手wd abandon
,但可惜这个项目已经很久未更新,且存在一些可以优化的地方,所以忍不住重写了一个,选择Go是为了方便地解决安装和跨平台问题。
TOC
-
单文件运行,多平台兼容,无需安装任何依赖。Windows运行截图:
-
支持查单词、词组,本地词库(10W+),可离线使用
运行时后台会自动下载数据库
-
支持
-t
翻译长句 👀 -
极速响应,超低延迟 ⚡
-
灵活的配置项,支持修改代理、配色等
-
其他小功能:
更多功能正在开发中 👽
- 这里下载位置为示例,可以下载到任何地方,然后将路径加入PATH环境变量
- 其他架构需求请提交issue
在终端中执行:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Karmenzind/kd/master/scripts/install.sh)"
如果raw.githubusercontent.com被屏蔽,改用
git clone https://github.com/Karmenzind/kd && bash kd/install.sh
或者按照平台/架构复制命令(🖱️ 点击展开)
```bash # Linux amd64 (x86-64) sudo sh -c 'curl --create-dirs -L -o /usr/local/bin/kd https://github.com/Karmenzind/kd/releases/latest/download/kd_linux_amd64 && chmod +x /usr/local/bin/kd' # MacOS arm64 (即M1/M2/M3芯片的架构) sudo sh -c 'curl --create-dirs -L -o /usr/local/bin/kd https://github.com/Karmenzind/kd/releases/latest/download/kd_macos_arm64 && chmod +x /usr/local/bin/kd' # MacOS amd64 (x86-64) sudo sh -c 'curl --create-dirs -L -o /usr/local/bin/kd https://github.com/Karmenzind/kd/releases/latest/download/kd_macos_arm64 && chmod +x /usr/local/bin/kd' # Linux arm64 sudo sh -c 'curl --create-dirs -L -o /usr/local/bin/kd https://github.com/Karmenzind/kd/releases/latest/download/kd_linux_arm64 && chmod +x /usr/local/bin/kd' ```
ArchLinux推荐直接通过AUR安装/更新,例如:yay -S kd
用非管理员模式的Powershell执行:
# 下载文件放入C:\bin,这里是amd64(x86-64)架构
Invoke-WebRequest -uri 'https://github.com/Karmenzind/kd/releases/latest/download/kd_windows_amd64.exe' -OutFile ( New-Item -Path "C:\bin\kd.exe" -Force )
# 将C:\bin加入PATH环境变量
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "User")
或手动下载文件,然后通过“计算机->属性->修改环境变量”修改PATH
Android
经测试(感谢@Ze-Wshine协助),用aarch64-linux-android-clang交叉编译的kd可以在Termux(安卓平台上的Linux模拟器APP)运行,可以在此处下载试用。后续有时间会加入标准编译流程作为release发布。
自行编译
其他暂未支持的平台,可创建issue反馈需求。也可以自己动手安装最新Go环境,clone此项目,然后执行以下流程编译安装:
此处为类unix环境,具体命令根据平台修改
go mod tidy
CGO_ENABLED=1 go build -o kd cmd/kd.go
mv kd /usr/bin/kd
🖱️ 点击展开
1. 删除kd可执行文件(Linux/Mac:/usr/local/bin/kd,Win:C:\bin\kd.exe) 2. 删除配置文件和缓存目录 - Linux: `rm -rfv ~/.config/kd.toml ~/.cache/kdcache` - MacOS: `rm -rfv ~/.config/kd.toml ~/Library/Caches/kdcache` - Win: `rm ~\kd.toml ~\kdcache`如果通过AUR安装,则直接通过AUR管理工具卸载,例如:
yay -Rs kd
直接执行kd <text>
查单词、词组(如kd abandon
、kd leave me alone
)
完整用法如下:
❯ kd --help
NAME:
kd - A crystal clean command-line dictionary.
USAGE:
kd [global options] [arguments...]
GLOBAL OPTIONS:
--nocache, -n don't use cached result 不使用本地词库,查询网络结果
--theme value, -T value choose the color theme for current query 选择颜色主题,仅当前查询生效 (default: temp)
--server start server foreground 在前台启动服务端
--daemon ensure/start the daemon process 启动守护进程
--update check and update kd client 更新kd的可执行文件
--generate-config generate config sample 生成配置文件,默认地址为~/.config/kd.toml
--edit-config edit configuration file with the default editor 用默认编辑器打开配置文件
--help, -h show help
--version, -v print the version
📁 配置文件地址:Linux/MacOS为~/.config/kd.toml,Windows为~/kd.toml
以下为可配置项和默认值,可执行kd --generate-config
生成默认配置文件,执行kd --edit-config
直接用编辑器打开配置文件
# 是否使用分页器,MacOS和Debian系上默认false,请自行开启
paging = true
# 分页器命令,例如:less -RF / bat / (不推荐) more -e
# 注意:less命令如果不加上-R,在某些系统/发行版上会产生颜色乱码问题
pager_command = "less -RF"
# 结果中只显示英文(英译、英文例句等)
english_only = false
# 颜色主题,支持:temp/wudao
theme = "temp"
# 格式:http://<IP或域名>:<端口>。设置为空时,系统代理依然会生效
# 如果需要频繁查询长句,可设置此项,否则本地IP有一定概率会被有道服务器暂时屏蔽
http_proxy = ""
# 输出内容前自动清空终端,适合强迫症
# 是否开启频率提醒:本月第X次查询xxx
freq_alert = false
# (开发中)安装了emoji字体的可以输出一些emoji字符,just for fun
enable_emoji = true
# 日志配置
[logging]
# 开启日志记录
enable = false
# 默认值:Linux/MacOS为/tmp/kd_<username>.log,windows为%TMPDIR%/kd_<username>.log
path = ""
# 日志级别,支持:DEBUG/INFO/WARN/PANIC/FATAL
level = "WARN"
如果你在使用tmux,借助悬浮窗口(popup)能让查询体验更舒适友好 🍭
在bash/zsh的配置文件中加入:
if [[ -n $TMUX ]]; then
__kdwithtmuxpopup() {
tmux display-popup "kd $@"
}
alias kd=__kdwithtmuxpopup
fi
为避免每次开机后第一次查询都要等待守护进程启动,可以创建service文件/usr/lib/systemd/user/kd-server.service
,然后执行systemctl enable --user kd-server
,daemon进程将随系统自动启动
目前支持以下配色,后续会增加更多。如果不希望输出颜色,设置环境变量NO_COLOR=1
即可
目前发现MacOS/Debian Bookworm设置less为分页器后,颜色渲染会失败,尚未解决。如果其他平台遇到此问题,请提交issue
解决方案:
- 配置文件中设置
pager_command = "less -RF"
(新版本默认) - 改用其他pager程序,如bat/more(安装bat后,在配置文件设置
pager_command = "bat"
) - 关闭pager,配置文件中设置
paging = false
- 如果还想使用less作为分页器,可在shell中设置alias,例如bash/zsh可在bashrc/zshrc中添加:
__kdwithpager() {
kd ${@} | less -RF
}
alias kd=__kdwithpager
我还在犹豫生词本的具体实现形式,可能考虑作为笔记推送到Notion之类的应用。
目前可以参考@exaithrg提供的方式来做一个Repo形式的生词本。
如果弹出“无法打开,因为Apple无法检查是否包含恶意软件”的提示,请执行:
sudo xattr -r -d com.apple.quarantine <kd文件所在路径>
近期
- 支持bash/zsh/fish补全,包含命令补全和热词补全
- 支持生词本功能
长期
- 增加多种主题,包含常见配色如Gruvbox/Molokai,仿照bat实现
- 支持全模块自定义显示配置
- 引入多种查询源和词库,如stardict、bing等
- 增加远程服务端
- 支持通过fzf补全
- Vim插件,浮窗显示查词结果
- 离线词库周期更新