大部分源码由 ChatGPT-4 模型生成, [[file:./dict-line.org][提问过程]]
概述 Emacs 查看字典翻译内容, 并自动播放字典音频文件(可选).
Preview Messages [[./preview.png]] Posframe [[./preview.gif]]
支持的字典列表
下载字典: [[https://github.com/program-in-chinese/vscode_english_chinese_dictionary/tree/master/src/%E8%AF%8D%E5%85%B8%E6%95%B0%E6%8D%AE][vscode_english_chinese_dictionary/src/词典数据 at master · program-in-chinese/vsc...]]
配置示例
(use-package dict-line :diminish (dict-line-mode "🗺️") :ensure nil :load-path "path-to-your/dict-line" :defer 2 :custom ;; (dict-line-audio t);; 自动播放音频 ;; (dict-line-audio-root-dir "~/your/pronunciations/");; 音频目录 (dict-line-dict-directory "~/your/dict/");; 字典文件目录 (dict-line-dict-personal-file "~/your/dict/Mydict.ts");; 手动添加字典文件, M-x dict-line-word-save-from-echo ;; 显示方式 (dict-line-display #'dict-line--posframe);; 显示依赖 posframe.el ;; 或者使用 message 显示 ;; (dict-line-display #'dict-line--message) ;; 或者自定义显示方式, 字典内容结果变量: dict-line-word, dict-line-dict :config (dict-line-mode t) )
*** 播放单词音频文件 播放音频外部依赖程序: [[http://www.mplayerhq.hu/design7/dload.html][MPlayer - The Movie Player]]
音频文件: [[https://github.com/yousefvand/pronunciations/tree/809cc0ca4d6ac4dbf0519e1caa40e581d41c2df3][GitHub - yousefvand/pronunciations at 809cc0ca4d6ac4dbf0519e1caa40e581d41c2df3]]
(setq dict-line-audio-root-dir "path-to/dict/audio") (setq dict-line-audio t)
参数
dict-line-dict-directory 字典文件目录, 必须的
dict-line-idle-time 光标空闲多长开始查找单词, 默认: 0.5 秒
dict-line-audio 播放单词音频文件 t/nil
dict-line-audio-root-dir 音频文件夹
dict-line-audio-program 音频文件播放后端程序, 默认: mplayer
dict-line-audio-play-program-arg 音频播放后端程序参数
dict-line-display 显示字典内容被调用变量.
dict-line-posframe-location 使用 posframe 显示字典内容的位置.
TODO [2/5]
[X] 异步
[ ] 支持更多 Dict 类型
[ ] 外部索引, 例如: ripgre, grep 等等
[X] 支持更多显示方式, 例如: posframe, popup, overlay
[ ] 支持更多后端, 例如: sdcv
后记 解析速度蛮不错的, 感觉不到卡顿.
贡献 欢迎 PR.
Welcome Pull request.