造福大众
btw 我想看看成功的 sdcv ecdict 在 paw-view-note 里的效果
造福大众
btw 我想看看成功的 sdcv ecdict 在 paw-view-note 里的效果
这个好棒,搞得我想买个安卓手机了 。安卓emacs客户端,现在支持屏幕滑动吗?
支持啊,不过滑动是有点慢,没那么顺滑,所以我加了tool-bar映射了按钮。
现在paw支持yomitan啦!
paw-dictionary-function
,然后直接用paw-view-note-in-dictionary
paw-yomitan-search-details-firefox
或者paw-yomitan-search-details-chrome
paw-view-note
,再在*paw-view-note*
buffer调用以上函数。看到又有新功能,更新了下,报
Symbol's function definition is void: defvar-1
Debugger entered--Lisp error: (void-function defvar-1)
defvar-1(sdcv-mode-syntax-table #^[nil #^[(0) nil syntax-table
#^^[3 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] #^^[1 0 #^^[2 0
#^^[3 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 128 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ...
#^^[3 640 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ...
#^^[3 896 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ...
#^^[3 1408 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ... ... ... ... ...] #^^[2 4096 ... ... ... ... ... ...
#^^[3 4864 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ... ... ... ... ... ... ... ... ... ...] #^^[2 8192
#^^[3 8192 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 8320 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 8448 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 8576 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ...
#^^[3 8960 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9088 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9216 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9344 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9472 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9600 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 9728 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ...
#^^[3 9984 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 10112 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ...] #^^[2 12288
#^^[3 12288 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]
#^^[3 12416 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ...
#^^[3 12800 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ...
#^^[3 13184 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ... ... ... #^^[2 40960 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...] ... ... ... ... #^^[2 61440 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]] #^^[1 65536 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... #^^[2 126976 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]] (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2) ...] syntax-table nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...])
byte-code("\301\302N\204\f\0\303\301\302\304#\210\305\306!\204(\0\303\306\307\310#\210\311\306\305\306!\203$\0\312\202&\0\313 \"\210\306\302N\2044\0\303\306\302\314..." [sdcv-mode-abbrev-table sdcv-mode-map variable-documentation put "Keymap for `sdcv-mode'." boundp sdcv-mode-syntax-table definition-name sdcv-mode defvar-1 nil make-syntax-table "Syntax table for `sdcv-mode'." define-abbrev-table "Abbrev table for `sdcv-mode'." fboundp derived-mode-set-parent derived-mode-parent] 5)
require(sdcv nil t)
看不出来什么问题,这个sdcv部分没动。
不过刚发现了config.el的小问题,已解决。
嗯,我换了台机器,也是删除后重新克隆的paw,报
Debugger entered--Lisp error: (void-function emacsql-sqlite)
emacsql-sqlite("/home/admin/.emacs.d/.cache/paw.sqlite")
感觉是没找到paw.sqlite这个文件,这个能手工创建吗
貌似别的群友也有过这个问题,数据库会自动创建的,现在是缺失了emacsql-sqlite的问题,这个不知道为啥缺失了,你先试试手动装上它看看。
这emacsql明明有在里面的 ;; Package-Requires: ((emacs “25.1”) (request “0.3.3”) (emacsql “3.0.0”) (s “1.12.0”) (dash “2.17.0”) (go-translate “3.0.5”) (gptel “0.8.6”) (focus “1.0.1”) (svg-lib “0.3”) (anki-editor “0.3.3”) (esxml “0.3.7”))
emacsql package updated. No emacsql-sqlite.el available. · Issue #2485 · org-roam/org-roam · GitHub 里面提到了melpa版本旧,更新即可
目前尝试了: 先卸载 emacsql ,再用package-install 装上
用use-package 安装 github 上的 emacsql
拷贝 ~/org 目录下的 paw.sqlite 到 .emacs.d/.cache 下
这个报错仍然出现
而 /.emacs.d/elpa/emacsql-20250301.1637 目录下是有 emacsql-sqlite.el 这个文件的;这个文件末尾是 (provide 'emacsql-sqlite),但它应该提供的不是一个function吧,想不明白
我刚直接删除了require emacs-sqlite这一句发现没有什么问题(emscs 29以上使用builtin sql好像不需要这个了),pull后再看看
感谢感谢,完美解决,报错已经消失!强!
剩下就是 sdcv 的错了
没有发现解释也...
用更多的词典查询一下吧! ^_^
这里就应该是 sdcv 出释义的地方对吧
若执行 paw-sdcv-search-at-point ,则
Debugger entered--Lisp error: (void-function sdcv-search-with-dictionary)
(sdcv-search-with-dictionary word sdcv-dictionary-complete-list)
今天脑子已经不转了,明天继续,再次感谢
因为很多群友反映sdcv问题了,在于不知道出了什么错误无法出单词释义和配置上的问题(例如无法辨认~
的问题)。
由于懒猫的sdcv采用的是同步查词,已经不符合本项目的性能需求。于是本项目彻底不再依赖懒猫的sdcv,只保留配置上的同步。以下配置既同步了懒猫的sdcv的配置,同时也配置了paw自己的配置。
建议大家增加以下配置,如果想同步sdcv的配置:
(with-eval-after-load 'sdcv
(setq paw-sdcv-env-lang sdcv-env-lang)
(setq paw-sdcv-program sdcv-program)
(setq paw-sdcv-only-data-dir sdcv-only-data-dir)
(setq paw-sdcv-dictionary-data-dir sdcv-dictionary-data-dir)
(setq paw-sdcv-fail-notify-string sdcv-fail-notify-string)
(setq paw-sdcv-dictionary-list sdcv-dictionary-simple-list))
或者直接配置paw:
(cond ((eq system-type 'darwin)
(setq paw-sdcv-program "/opt/homebrew/bin/sdcv" )
(setq paw-sdcv-dictionary-data-dir (expand-file-name "dict" doom-private-dir)))
((eq system-type 'windows-nt)
(setq paw-sdcv-program (expand-file-name "~/.doom.d/modules/sdcv/sdcv.exe"))
(setq paw-sdcv-dictionary-data-dir (expand-file-name "dict" doom-private-dir)))
((eq system-type 'gnu/linux)
(setq paw-sdcv-env-lang (getenv "LANG"))
(setq paw-sdcv-dictionary-data-dir (expand-file-name "dict" doom-private-dir)))
((string-equal system-type "android")
(setq paw-sdcv-env-lang (getenv "LANG"))
(setq paw-sdcv-dictionary-data-dir (expand-file-name ".doom.d/dict" termux-home-dir))))
(setq paw-sdcv-dictionary-list ;setup dictionary list for simple search
'(
"懒虫简明英汉词典"
"Collins Cobuild English Dictionary"
"小学馆-日中词典"
"日汉双解词典"
"EJ-EDict" "JE-EDICT_Kanji"
"日汉词典" "jmdict-ja-en" "KANJIDIC2" "新明解国語辞典"
"小学館中日辞典EB版" "広辞苑 第六版" "EJ-GENE95"
"jmdict-en-ja"
"JCEDict" "EDICT"
;; "Engligh Idioms (eng-eng)"
"JEDict" "ENAMDICT" "EJDic" "DrEye日汉词典" "DrEye4in1词典"
;; "Longman Language Activator 2nd Ed. (En-En)"
;; "简明英汉字典增强版"
;; "Cambridge Advanced Learners Dictionary 3th Ed. (En-En)"
;; "新世纪汉英科技大词典" "Longman Dictionary of Contemporary English" "Merriam-Webster's Collegiate 11th Ed. (En-En)" "Longman Dictionary of Common Errors (En-En)" "WordNet" "牛津现代英汉双解词典" "新世纪英汉科技大词典" "Merriam-Webster's Collegiate Thesaurus (En-En)"
;; "21世纪双语科技词典" "KDic11万英汉词典"
;; "Collins Cobuild English Dictionary" "Longman Dictionary of Contemporary English 5th Ed. (En-En)"
;; "Merriam-Webster's Advanced Learner's Dictionary (En-En)"
))
本项目使用的异步查询sdcv函数:paw-sdcv-search-with-dictionary-async
,
如果出现问题,排查*sdcv-output*
和sdcv-error*
这两个buffer,看看什么error,正常是这样的:
paw 要求 sdcv 程序和 sdcv.el 对吧 linux系统下 sdcv 正常查词,在emacs 里用 sdcv-search-at-point 也能正常查词出结果 但是 paw-view-note 里却出不来
感谢给出的 paw sdcv 设置,为了简化,我去掉了判断操作系统的部分,设置如下
(require 'sdcv)
(setq paw-sdcv-env-lang (getenv "LANG"))
(setq paw-sdcv-dictionary-data-dir (expand-file-name "~/.stardict/dic"))
(setq paw-sdcv-dictionary-list ; setup dictionary list for simple search
'(
"朗道英汉字典5.0"
"简明英汉字典增强版"
))
执行 paw-sdcv-search-at-point 会返回
Debugger entered--Lisp error: (void-function sdcv-search-with-dictionary)
(sdcv-search-with-dictionary word sdcv-dictionary-complete-list)
(insert (sdcv-search-with-dictionary word sdcv-dictionary-complete-list))
...
看来它要的是complete-list ? 看前面配置示例是管 simple search的?是不是这个原因呢,如何修改加上 sdcv-dictionary-complete-list 到 paw-sdcv-dictionary-list 中呢
btw: 因为没有执行成功,似乎没出现 sdcv-output sdcv-error 的 buffer, 但有一个 SDCV 的,内容为空
新修改的版本去掉了sdcv.el的依赖(其实以前也是一直只是用了sdcv.el的配置而已,方便用户不用两边都配置,现在分开了配置了,正如我上面提供的配置一样),你可以将sdcv.el删除了(你也可以保留,sdcv.el和paw互不冲突),但是sdcv命令行需要保留。sdcv-search-with-dictionary是sdcv.el的函数,不再需要了。为什么会出这个error,可能是因为你还没更新到最新,因为paw-sdcv-search-at-point也删除了,现在查词,直接用paw-view-note。 将sdcv-dictionary-complete-list内容复制到paw-sdcv-dictionary-list就可以了,paw不分simple和complete。
总结,你的配置没有问题,只要更新paw,最后用paw-view-note查词(别用paw-sdcv-search-at-point了,已经没有这个函数了),就能看到sdcv-output和sdcv-error两个buffer了。
内牛满面,更新后完美解决,sdcv的结果也出来啦!一万个感谢 !
and
如果有可能的话,可否为发音的部分加一个配置音量大小的参数;目前默认的单词发音挺响亮的,晚上开视频网页的合适的音量,切到 paw 查词时的自动发音经常吓我一跳
音量不太可行,因为要支持不同的播放器不太通用。不过你可以临时关闭自动播放。M-x paw进入界面后,在header上,页数的右边,有个喇叭icon,点击一下就会临时关闭自动发音,再点一下恢复。