所以我试图让org-protocol
第一次在Firefox Quantum上工作。我通过各种博客文章和文档,但仍然无法通过这个特定的错误
Greedy org-protocol handler. Killing client.
No server buffers remain to edit.
所以我在Ubuntu Linux x64 16.04上使用emacs 25.3,以及新发布的Firefox Quantum。
我试图以两种方式做到这一点。
通过创建桌面条目然后在Firefox中设置bookmarklet来设置org-protocol
的传统方法。
在Firefox中使用org-capture
插件。
两者都给了我同样的错误。
对于方法1,我遵循documentation以及非常有用的stackexchange帖子:
How to make org-protocol work?
还有这个有用的博客post。
这是我做的:
一个。我创建了一个桌面条目:
[Desktop Entry]
Name=org-protocol
Exec=emacsclient -n %u
Type=Application
Terminal=false
Categories=System;
MimeType=x-scheme-handler/org-protocol;
B中。将配置添加到.spacemacs
文件。
我添加了一行:
(server-start)
(require 'org-protocol)
然后我在.spacemacs
文件中设置了捕获模板:
(setq org-capture-templates
(quote
("p" "org-protocol" entry (file+headline "~/Dropbox/config/org/refile/refile.org")
"* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%:initial\n#+END_QUOTE\n\n\n%?")
("l" "org-protocol link" entry (file "~/Dropbox/config/org/refile/refile.org")
"* %? [[%:link][%:description]] \nCaptured On: %U")
... Additional templates.
))
℃。然后我创建了带有位置的书签:
javascript:location.href='org-protocol://store-link://l/'+encodeURIComponent(location.href)
javascript:location.href='org-protocol://capture://l/'+encodeURIComponent(location.href)+'/'+encodeURIComponent(document.title)+'/'+encodeURIComponent(window.getSelection())
在完成所有这些之后,我仍然会收到上面引用的错误消息。
其次,我在Firefox中尝试了org-capture
加载项。但它也没有用。
不确定错误的原因是什么。任何帮助表示赞赏。
在其他阅读中,如果Greedy
模板中存在问题,则会出现此org-capture
错误,但我没有发现任何错误。
答案 0 :(得分:1)
我过去也遇到了一些麻烦。
现在我使用的解决方案是firefox add-on - >您可以直接从Firefox安装它。这很简单,在我看来,它开箱即用(Debian发行版,Firefox 52.5.0)。我不知道它是否适用于Firefox Quantum。
像往常一样配置org-protocol。就我而言:
cat > "${HOME}/.local/share/applications/org-protocol.desktop" << EOF
[Desktop Entry]
Name=org-protocol
Exec=emacsclient %u
Type=Application
Terminal=false
Categories=System;
MimeType=x-scheme-handler/org-protocol;
EOF
然后
update-desktop-database ~/.local/share/applications/
在您的Emacs init.el
文件中:
(server-start)
(require 'org-protocol)
(setq org-capture-templates `(
("p" "Protocol" entry (file+headline ,(concat org-directory "notes.org") "Inbox")
"* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n\n%?")
("L" "Protocol Link" entry (file+headline ,(concat org-directory "notes.org") "Inbox")
"* %? [[%:link][%:description]] \nCaptured On: %U")
))
这就是全部。在我的配置下它可以工作,我希望你的相同。
额外:前段时间我提出了一个小模板改进来处理ArXiv.org标题,详细信息如下:https://github.com/sprig/org-capture-extension/issues/37
答案 1 :(得分:1)
好的,这是一个棘手的解决方案。问题是由use-package
emacs包中最近的一些更改引起的。该问题记录在github上。
https://github.com/jwiegley/use-package/issues/557
让我告诉你我是如何找到这个问题的,以防其他人注册类似的问题。
我按照README中的建议设置了org-capture-extension,但是我在emacs消息缓冲区中不断收到以下错误(如下所示)。我在Ubuntu 16.04x64上使用Emacs 25.3和新的Firefox Quantum浏览器以及Chrome。
所以我尝试使用以下命令手动通过emacsclient传递链接
emacsclient -n "org-protocol:///capture?url=http%3a%2f%2fduckduckgo%2ecom&title=DuckDuckGo"
但是我一直在Messages缓冲区中得到这个奇怪的响应,其中warning399和警告931之间存在循环行为。
condition-case: Symbol’s value as variable is void: use-package--warning349
condition-case: Symbol’s value as variable is void: use-package--warning931
condition-case: Symbol’s value as variable is void: use-package--warning349
condition-case: Symbol’s value as variable is void: use-package--warning931
condition-case: Symbol’s value as variable is void: use-package--warning349
解决方案记录在github问题中,但我不认为用户应该手动实现修复。相反,我认为作者将进行更改并将其合并为master - 此时用户可以重新下载并安装use-package
包。