请问有人在windows 10 下成功在emacs中使用星际译王吗?我安装了一个编译好的版本,但emacs发现不了这个翻译软件。
多谢@geogealbert,我按照你的方法可以在Mingw64 中成功编译sdcv.exe ,添加到系统Path后, CMD下也可以发现sdcv --version 的版本号。但是在Emacs中使用时还是没找到sdcv,老是提示Operatable program or batch file 。 配置是用的猫哥的配置,在mac 和linux都是正常的。
把sdcv.el里面的命令拿到命令行试试。
不知道如何在命令行执行这些命令,能否分享下你的sdcv.el 是怎么设置的?
我进行了以下设置,在emacs中执行sdcv-search-input
后,Messages buffer会提示 Reached last dictionary.
(setq sdcv-program "d:\\Dev_Tools\\emacs-28.0.50\\bin\\sdcv.exe")
(setq sdcv-dictionary-data-dir "c:\\home\\Lazycat-emacs\\site-lisp\\sdcv-dict")
难道是没法识别字典?
(shell-command-to-string "E:\\emacs\\bin\\sdcv.exe -n --data-dir=\"e:\\home\\albert\\stardict\" \"test\"")
类似这样,在emacs里试试,调调参数,看看报错吗。
按照你的方法修改sdcv.el 可以正常工作了,感谢。
还有一点要注意:windows下无法识别mac和linux的词库,不知道是什么原因?重新下的字典才能识别。
没有mac。没在linux下用过星际词霸。以后有时间试试。
我也遇到了
我终端是st
在所有company补全中文都有这个问题
我觉得不是终端的毛病,是Emacs 终端版本的毛病
sdcv.el 的代码其实是没有问题的。问题似乎在于 sdcv 命令行参数不把 '~‘ 理解为家目录,如果变量 sdcv-dictionary-data-dir 的值包含 '~’ 的话,得这么干
(setq sdcv-dictionary-data-dir (file-truename “~/.stardict/dic”))
我测试过了,如果不按照楼上修改sdcv.el 就没法找到字典。 我是用的绝对路径,并没有使用“~” 这样的相对路径。你这边可以正常使用?
经测试:(setq sdcv-dictionary-data-dir (file-truename “~/.stardict/dic”)) 确实是解决了路径问题,这样就不用绝对路径了。 但是还是解决不了无法识别字典的问题
楼主的这些插件真的是天秀。
windows10整了半天也没搞懂为啥识别不了词典,不过使用的话下面加一个advice就行了,默认用sdcv-dictionary-simple-list的一个字典(参考@georgealbert的方法),比源码新增的-0 -1 两个flag是强制uft8输出,如果有乱码的话可以试试加上。
(defun +sdcv-translate-result (word dictionary-list)
"Call sdcv to search word in dictionary list, return filtered
string of results."
(sdcv-filter
(shell-command-to-string
(format "env LANG=%s %s -n %s -0 -1 --data-dir=%s --use-dict=%s"
sdcv-env-lang
sdcv-program
(format "\"%s\"" word)
sdcv-dictionary-data-dir
(car sdcv-dictionary-simple-list)))))
(advice-add #'sdcv-translate-result :override #'+sdcv-translate-result)
sdcv.el 的这个PR,好像初步解决了windows上乱码的问题。建议使用的时候设置好 default-process-coding-system
,例如
(setq default-process-coding-system '(chinese-gbk . chinese-gbk)) ;;windows中文locale
(setq default-process-coding-system '(utf-8 . utf-8)) ;;Mac 或Linux
请问下载的字典是否要解压后在放入目录?
需要解压后放入目录
你把词典解压拷贝到目录 /usr/share/stardict/dict 并安装 sdcv 了吗?
安装了,从你git下载安装的,你看那个check命令都能运行起来。