@zqso 使用 after-string 会存在一个问题: 如果把原始的单词给删掉了,它的翻译还会存在。只有删除 overlay 它才会消失。
虽然我个人阅读模式,几乎不会删除单词。
请问标记词后,可以在minibuffer显示一下已标记了么
生词的话,buffer 会刷新,但 knownword 就不会了,有时不确定是不是标上了
另, knownword.txt 和 unknownword.txt 加入单词是按啥顺序,目前感觉是随机的?
恩,可以加一个。
这个是什么意思?
会在 python 内存里保存一个set集合,存储生词。然后定期写入到文件。set 本身是无序的,也不确定python 是会按什么顺序存储。
想按你这样对应着回但不会
是连在一起说的,意思是生词因为 buffer 刷新可以知道是标记了;而认知词没有反馈的情况下自己不确定
还是没掌握换行,上而那楼已加换行也许好些
Python 应该有 OrderedDict 这样的东西。
不用 ordereddict可以直接有序排列的,转换会有不必要的开销。
你再加一个这个参数试试看?
更新:
测试完毕,加evaporate可行:
(defun dictionary-add-overlay-from (begin end _source target)
"Add a overlay with range BEGIN to END for the translation SOURCE to TARGET."
(let ((ov (make-overlay begin end)))
(overlay-put ov 'face 'dictionary-overlay-unknownword)
(pcase dictionary-overlay-position
('after (progn (overlay-put
ov 'after-string
(propertize (format dictionary-overlay-translation-format target)
'face 'dictionary-overlay-translation))
(overlay-put ov 'evaporate t)))
('help-echo (overlay-put
ov 'help-echo
(format dictionary-overlay-translation-format target))))))
再更:
已PR: https://github.com/ginqi7/dictionary-overlay/pull/38。 似乎和你的 hash-table 新分支 conflict 了
修改释意功能的小建议: dictionary-overlay-modify-translation 目前似乎执行后是等待输入(没有见到选择项可能是我不会用)。 那么,能否让 mini buffer 里等待输入处保持之前的释意的同时全选
场景,阅读中遇到一个单词 drawn 默认给的释意是”拔出的“, 查到合适句意的释意项是”硬拉入“,手工输入新释意后 render 时它会按”硬拉入“翻译 但后续遇到此词,比如新句子里是”取出“的意思 我希望是在已保留释意的前(或后)加入新释意项(目前是替换); 保留释意同时在全选状态,接下来可以按向左、向右添加或直接输入替换比较灵活(相当于选蓝后编辑)
先合并你的,我那个还得再调整调整。
我估计是网络等原因导致的bug。理论上是会有本地翻译和网络词典的结果都展示出来,供用户选择或者输入。你可以看看list-process 对应的buffer里有没有相关的错误信息。
这个功能估计实现不了。当前一个单词只保存了一个“解释”,展示的时候只能展示一个。所以修改是一个全局的。
好的,我再试试
明白了,在原文中选中释义再复制到 mini buffer里也能实现,原来只是想方便些;)
另有办法将当前buffer中渲染的所有生词一次性地提取出来吗
@ginqi7 新PR Pull requests · ginqi7/dictionary-overlay · GitHub :
dictionary-overlay-modify-translation
也可以加一个快捷键。我一会儿加上。
我目前是开启透析模式 (setq dictionary-overlay-just-unknown-words nil), 一般喜欢一看文章就先标完所有生词熟词,因为长文章生词较多,所以喜欢快速标记,标记完一个词,自动跳到下一个生词。
我刚写完了一个recenter, 但还不完美。晚些提交。
(defcustom dictonary-overlay-recenter-after-mark-and-jump nil
"Recenter after mark or jump."
:group 'dictionary-overlay
:type '(boolean))
这个 keymap 是不是不能用作标记一个单词为unknown?只有先有 overlay keymap才能生效。但是不标记为 unknown 就没有overlay
目前所有keymap都是基于render之后的overlay。光标必须在overlay (BEG END)内。
自动跳转的功能,默认关闭吧。高级的功能还是用户手动设置比较好。