什么样才是正确的org-protocol姿势

最近决定使用 org capture 来做信息的收集和整理。 但是谈到这个就离不开 org-protocol 。

我按照 https://github.com/sprig/org-capture-extension ,在打开 App的时候 会直接报参数错误,这是 applescript的内容

on emacsclient(input)

do shell script "/usr/local/Cellar/emacs-plus/HEAD-3c94c7b/bin/emacsclient -n -c -a \"/usr/local/Cellar/emacs-plus/HEAD-3c94c7b/Emacs.app/Contents/MacOS/Emacs\" '" & input & "'"

end emacsclient

on open location input

emacsclient(input)

end open location

on open inputs

repeat with raw_input in inputs

set input to POSIX path of raw_input

emacsclient(input)

end repeat

end open

on run

do shell script emacsclient("")

end run

报错

Wrong type argument: stringp, nil

而后我有参考xuchunyang 大佬的教程,修改了 App 的内容, 这时不再报错。 此时若先手动开启 emacsclient -c 时, 可以良好的使用。反之,会出现 emacsclient.app 无响应 同时造成 frame 卡顿。 能否修改 app 的内容, 使得不开启emacs 的 frame 也可以工作。

感觉没必要用插件,直接书签 js 走起

加插件只会增加复杂度,没有额外的收益

我是按照这个来设的,注意这个要装 pandoc

另外,如果你想要令 capture 的内容自动 refile 到指定位置,可以看看 abo-abo 的 orca。

2 个赞

在博客里面看到过这个插件

但是这个好像是把当前网页转换成org 文档,我的目的只是想要快速的记录某一块东西,或者记录当前的网址作为标签

明天有空的时候我了解一下:joy::joy:

书签 JavaScript

javascript:location.href='org-protocol://capture?template=l&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title%20%7C%7C%20%22%5Buntitled%20page%5D%22)+'&body='+encodeURIComponent(window.getSelection())

对应的 org-capture-template

  (setq org-capture-templates
       '(("l" "Link" entry (file+headline org-agenda-file-gtd "Inbox")
            "* %:annotation\n%i\n" :immediate-finish t :kill-buffer t)
         ))

可以记录当前页面,选中一段纯文字也可以记录。

这个也是需要 emacsclient.app 的支持吧

测试了一下 发现很方便

Emacs Mac Port 自带了 Org-protocol,所以不需要 emacsclient,也能用 org-protocol

我用的是 emacs-plus 的版本, 有必要切换到 mac port 版的吗

可以参考 Mac上哪个版本的emacs比较好?

你要做书签的话,也可以试试这个