如何令 sdcv 在 windows 下用上 ecdict

过年有时间,折腾了好几天 sdcv ,目的是想在 windows 上用 ecdict 未果,困难重重。论坛的贴子,搜索引擎的文章,能看的都看了,还是败下阵来,发个贴看看有没有人解决成功过

环境 : windows 11

一通浏览下来,这篇 blog 比较接近目的:

但是文中的编译好的 sdcv 的链接已经失效,所以我尝试着按网上的文章在 cygwin 下编译,非常不顺利,各种包安装重试了N回,就是通不过

然后没办法又找到了一个 msys2 下已经编译好的 sdcv 版本 https://packages.msys2.org/base/mingw-w64-sdcv 这回 windows cmd 能跑了,但是输出时中文释义都是空的,类似

Enter word or phrase: test Found 1 items, similar to test. –>€ –>test

*[test] -K5 n. , , , €, €, vt. , , vi. ,

[€] tested, testing, tests ( 575/627)

ecdict 也放到 .startdic/dic 目录下了

有这么4个文件

stardict-ecdict-2.4.2.dict

stardict-ecdict-2.4.2.idx

stardict-ecdict-2.4.2.idx.oft

stardict-ecdict-2.4.2.ifo

但是 sdcv -l 列出的结果是个空行

脑子有点不转了,请指教

问题:

1、 有没有不借助 cygwin msys2 就能原生在 windows 下运行的 sdcv 理论它是 c++ 写的? 那为什么没见到直接在 windows 下编译的例子呢

2、sdcv 直接指定查询字典的目录的语法是怎样的,按 help 里 = 号后跟个目录没成功

3、sdcv.el 能直接去读取查询 stardict 的词典库吗,这样就能跳过 sdcv 编译的问题,看这个贴子的意思是可以?

4、paw.el 应用到了 ecdict 的 sql 库,要是有高手能写一个直接查询 ecdict sql库的插件就好了,返回查词结果

找到的另一个有价值的页面:

可惜的是这个编译完成版的链接也失效了

我现在用纯lisp版本,支持windows,

可参考我的进一步配置, emacs.d/lisp/init-dictionary.el at master · redguardtoo/emacs.d · GitHub

1 个赞

感谢大佬指路 又折腾了一天,终于在假期末尾用上了

设置了朗道和ecdict,朗道查不到词时没反馈(经常查不到),查到时它的弹窗也不好看(如图),还会报个错

uncompressing langdao-ec-gb.dict.dz...done
You can’t save this buffer because compression program is not defined

因此我用了两下就不用了,只用 ecdict

谢谢!节前论坛有人问过年玩什么,别人不知道,我是就干了这么一件事儿 :sweat_smile:

弹窗可以改用别的插件的.我因为一直在terminal下用emacs.所以用了个对terminal支持比较好的弹窗.

以下代码你把最后一行(popup-tip def)改成用其他弹窗就可以了,

(defun my-dict-simple-definition ()
  "Show dictionary lookup in popup."
  (interactive)
  (let* ((word (my-dict-prompt-input))
         (def (my-dict-search-detail word my-dict-simple my-dict-simple-cache)))
    (when def
      (popup-tip def))))