manateelazycat / sdcv

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

buffer类函数翻译入口问题 #2

Closed yiufung closed 5 years ago

yiufung commented 5 years ago

sdcv-search-detail里把sdcv-search-witch-dictionary(返回翻译结果的string)作为argument传进了start-process,会出错,两个buffer翻译的函数都用不了了。

(let* ((process
            (start-process
             "sdcv" sdcv-buffer-name sdcv-program
(sdcv-search-witch-dictionary word sdcv-dictionary-complete-list))))

查了一下,Emacs下查词典(StarDict篇) 下的作者提供了一个方案(见第一个评论)。我稍微更改,加上了原本的data-dir选项:

(let* ((process
            (start-process-shell-command
             "sdcv" sdcv-buffer-name 
             (format "%s -n %s %s --data-dir=%s"
                     sdcv-program
                     (mapconcat (lambda (dict)
                                  (concat "-u '" dict "'"))
                                sdcv-dictionary-complete-list " ")
                     word
                     sdcv-dictionary-data-dir)
             )))

这样子倒是可以,但既然两个posframe翻译函数走的是sdcv-search-with-simple -> sdcv-search-witch-dictionary -> sdcv-translate-result,那buffer的翻译函数也走这个会比较一致吧。所以我改成了:

(with-current-buffer (get-buffer-create sdcv-buffer-name)
    (setq buffer-read-only nil)
    (erase-buffer)
    (setq sdcv-current-translate-object word)
    (insert (sdcv-translate-result 
             word
             sdcv-dictionary-complete-list))
    (sdcv-goto-sdcv)
    (sdcv-mode-reinit)
)

你看看哪个比较好,我提一个PR?这个翻译很好用,谢谢!

manateelazycat commented 5 years ago

因为我很少用 buffer 来看翻译结果, 所以重构的时候没有关buffer的接口. 可以统一成一个的 data-dir 接口.

欢迎提交PR, 谢谢.

yiufung commented 5 years ago

已提交 #3 ,额外有一些更改

manateelazycat commented 5 years ago

补丁已经合并, 辛苦啦! ;)

yiufung commented 5 years ago

谢谢!试用了很多dict包,觉得还是这个好用。现在MELPA上面的sdcv似乎是另外一个人fork的版本,已经很旧了。你有没有兴趣更新一下?我可以帮忙协调(向MELPA维护者提交recipe,更新代码文档等)

manateelazycat commented 5 years ago

我不想放到 MELPA 上, 我不关心有多少人知道我的东西, 懂的人喜欢即可.

这里有我的全部理由: https://www.jianshu.com/p/d90c8b15564c 望理解.

yiufung commented 5 years ago

我用过你的很多代码,也看过这篇文章,知道会占用你很多时间,所以才提出帮忙维护这个package。在网上搜索时,Emacswiki 的页面 代码很旧了,MELPA上面也是旧的版本,这样子即使感兴趣,也要费很多周章才能找到正确版本,我觉得挺可惜的。

manateelazycat commented 5 years ago

我用过你的很多代码,也看过这篇文章,知道会占用你很多时间,所以才提出帮忙维护这个package。在网上搜索时,Emacswiki 的页面 代码很旧了,MELPA上面也是旧的版本,这样子即使感兴趣,也要费很多周章才能找到正确版本,我觉得挺可惜的。

我已经过了与世有争的年龄了, 我比较享受这种偶尔在世界上遇到同样兴趣人的回馈, 这种感觉很好. 我只在乎我在乎的人, 和我有同样喜好的人, 其他人, 我不关心, 我也不关心他们是否用的方便.

做自己喜欢的事情, 生活过的极简, 偶尔谢谢代码, 会会同样喜好的朋友, 生活就足够了.