Windows10中文家庭版环境下Emacs中词典的选择
若干年前,曾经在Linux下使用过Emacs,当时配置词典功能是轻松加愉快,直接在网上搜索了一下,找了个sdcv的配置文件扔到目录里,配置了几句话,然后就一切都好了。 然而,这两天在Win10下想使用词典,却费了牛劲了。首先,使用sdcv的Emacs扩展不止一个了,而变成了一大堆,一个一个试过去,对windows支持都不好。
最大的困难其实出在sdcv上:编译windows原生的sdcv需要先编译readline,glib2,zlib三个库,一顿鸡飞狗跳之后,得到的版本在系统中设置词典的环境变量后可以查词,但在Emacs 中死活找不到词典——无论用哪个扩展都如此;用Cygwin编译,遇到了编码问题,按水木清华上一个网友的方法设置CMAKE变量后,能顺利完成,在Cygwin中能顺利查词, 但是在Emacs中同样找不到词典,在Emacs中打开shell,于其中运行sdcv -l,会发现所有词典名都是乱码,直接输入单词,查询结果也全是乱码;用msys2编译失败,是CMAKE 找不到一些东西,但安装的时候告诉我和已有的库有冲突,可我是新装的msys2啊……最后也没有能解决,只好将msys2删除了。
sydict倒是顺利的用visual studio 2019编译出来了,可惜查词的时候需要等待18分钟才能打开查询结果,期间Emacs没有任何响应。
后来找到一个办法,yasdcv.el可以使用,而其它工具不行:建立sdcv.bat,并放置在Emacs可以搜索的PATH中,其中内容为:
@echo off "C:\windows\system32\bash.exe" -ilc "/usr/bin/sdcv %*"
然后在WSL中安装sdcv并拷贝词典,最后设置一下yasdcv中的sdcv命令到sdcv.bat即可。 这个办法可以使用,但是查词速度仍是龟速,检查了一下,查词最快5分钟,最慢8分钟,在我的RYZEN 2500U的机器上CPU占用27%,内存占用三百多兆,CPU占用最多的是命令解释 占53%,然后是行号占42%,也就是说,即使不显示行号,查一个词最快也要两分半。显然这个方案也不能接受。
然后又试了Github上两个有道词典方案,试了试,也都需要数分钟,遂放弃。
然后又尝试了几个dictd.org的方案,没有找到怎么配置英汉词典的方法,放弃。
还找到了两个词典服务器的方案,一个是用ruby,一个是用python,觉得似乎太重型了,没有尝试。
最后在Github上逛,看到了一个使用bing方案的办法:https://github.com/cute-jumper/bing-dict.el 按这个方案配置,单词只显示在最下方,对于快速阅读来说,已经足够了,该方案还可以保存本地缓存,以及查询历史,非常不错。