manateelazycat / sdcv

Emacs interface for sdcv (Stardict console version)
73 stars 14 forks source link

调用sdcv是否需要加上-x或--only-data-dir选项? #5

Closed ctrl2wei closed 5 years ago

ctrl2wei commented 5 years ago

我本来想在shell中使用sdcv,并设置了$STARDICT_DATA_DIR\dic,后来发现emacs使用sdcv.el时查询词典包含了$STARDICT_DATA_DIR\dic中的词典。

manateelazycat commented 5 years ago

现在用的 --data-dir 参数, 然后通过 sdcv-dictionary-simple-list 和 sdcv-dictionary-complete-list 控制查询词典的范围.

应该可以满足你的需求

ctrl2wei commented 5 years ago

可能我没有表述清楚。我的意思是:如果不加 --only-data-dir 参数,sdcv还会使用其它目录(例如:$STARDICT_DATA_DIR\dic)下的的词典。

系统:debian sid apt 安装 sdcv, 版本 0.5.2 emacs version 27.0.50

我按照README设置 sdcv-dictionary-data-dir 为 ~/.emacs.d/sdcv-dict/ 其他的例如 sdcv-dictionary-simple-list 和 sdcv-dictionary-complete-list 也按照README设置好。

一切都正常工作,查询单词也都是在我设置好的词典里面去查找。 Screenshot from 2019-04-05 11-09-35

可当我需要在 shell 中使用 sdcv, 我需要在 $STARDICT_DATA_DIR\dic 目录(默认 ~/.stardict/dic)中添加词典。我添加了 stardict-oxford-gb-formated-2.4.2 (牛津英汉双解美化版)stardict-lazyworm-ec-2.4.2 (懒虫简明英汉词典)。

可这样以后,在 emacs 使用 sdcv-search-pointer+ 是下面的结果。sdcv.el 使用了 ~/.stardict/dic 中的词典。 Screenshot from 2019-04-05 11-21-11

我试着在代码里面加入 -x 参数后一切正常。 将 https://github.com/manateelazycat/sdcv/blob/69f342cf0cf078e1a01f711f94baffc624680ad9/sdcv.el#L580 改为 (format "LANG=en_US.UTF-8 %s -x -n %s %s --data-dir=%s"

manateelazycat commented 5 years ago

可以啊,你给我发个补丁吧。

manateelazycat commented 5 years ago

Done https://github.com/manateelazycat/sdcv/commit/e310f617b58b1ce37df62acefd2cf25e5961ef5d