魔改了一个纯elisp的stardict插件...

windows上sdcv有点小bug,比如不能正确识别环境变量LANG,导致词典列表是乱码等等。。于是打算找找有没有直接解析字典文件的emacs包,找了一下还真有

所以就在这个script基础上增加了一些东西,让它体验和sdcv接近

Repo:https://github.com/pRot0ta1p/stardict.el

我自己用起来感觉还行 :rofl:,有个缺点就是添加词典的时候需要算hash-table,可能需要卡几秒,查词速度比sdcv要慢一些,不过不至于慢到影响使用的程度。。所以我抄了一下doom-emacs里面的add-transient-hook!这个macro,让字典加载可以defer到第一次查词之前。

有一个优点就是因为查词的时候emacs直接打开字典文件搜索,所以只要让emacs以utf-8打开文件,就能避免乱码

8 个赞

试了一下,报错:Wrong type argument: integer-or-marker-p, nil

该从哪儿入手解决呢?

我的锅 ,我把一个变量初值搞错了 :joy:,你要不pull 一下最新版再试试?

:rofl:还是不行啊

要么出现 The word: [xxxx] is not found in xxxx词典,要么还是上面那句 :sweat_smile:

我emacs -Q试了一下没法复现,能发一下backtrace和配置吗?

同样的配置,今天就可以了,奇怪 :crazy_face:

这个包真是我们这种工作电脑没管理员权限的用户的福音啊 :+1:

这是啥主题和字体?感觉挺好看……

emacs 28 内置的主题modus-themes和我自己配置的Iosevka字体 https://github.com/pRot0ta1p/Iosevka/tree/my-fork

1 个赞

中文字体请问是?

Sarasa Gothic

Repo的链接打不开了,大哥更新一下呗

从github搬家到codeberg的时侯弄丢了。。。直接用原来的版本吧 EmacsWiki: stardict.el ,我当时的修改主要是加了用posframe显示查询结果的功能,自己写一个应该不难。

好的 lol

我把自己魔改的stardict放在我的配置里了 :rofl: 链接 现在可以在光标处取词或者prompt取词, 能够粗略处理 ing, ed, s 等屈折变化.

因为我是在emacs android上用的, 屏幕太小, 我没有用posframe, 而是直接切换到一个专门的buffer. 不过要改为posframe应该也好改.

1 个赞

这个工具包支不支持中文转英文呢

加载了汉英词典之后应该可以(我还没试过),词典可以在星际译王作者的网站下载:链接

我试过了,不行.

我试了一下确实不行, 抱歉! 疑似是 stardict-open-1 函数读取索引 (idx文件) 时未能正确地将编码转为汉字, 因为每个索引现在是这个样子: "\344\270\200\342\200\246\344\270\200\342\200\246" (6559 . 995). 字符串里应该是几个UTF-8汉字.

我自己不是 stardict.el 的作者, 对汉字编码转换不了解, 尝试在读取idx文件后在临时buffer里运行 (recode-region (point-min) (point-max) 'utf-8 'no-conversion) 但报错, 有空再看看. 要是坛里有大佬指点一下就太好了.

没关系,知道你不是作者。我有空也看看,如果有后面有进展,再一起分享 :handshake: