设置
Cygwin Emacs,我有一个部分工作设置org-protocol
。org-protocol 是一种从浏览器捕获信息并将其传递给 Emacs 的方法。我使用 Windows 7 注册表修改来添加org-protocol
到已知协议列表中,并使 cygwinbash
能够启动emacsclient
以处理这些请求。部分工作意味着书签和 emacs 加载操作成功,除了下面的问题案例。
问题
我在页面上选择有趣的文本,并调用小书签,但是单独使用某些字符encodeURIComponent
(即括号和单引号)无法正确转义。这会造成严重破坏,导致 bash 解析错误。我不知道单独使用 bash 来处理这个潜在的引用问题的方法,所以我想修改书签,以替换任何有问题的字符。
下面的代码在 Chrome 的 JS 控制台中调用时有效,但在作为书签调用时无效。我还尝试(function(){...})()
用相同的失败结果的语法重做它。
我有什么解决方案(bash、bookmarklet、其他?)?
书签代码
javascript:location.href='org-protocol://capture://'+encodeURIComponent(location.href)+'/'+encodeURIComponent(document.title)+'/'+encodeURIComponent(window.getSelection()).replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")
注册表模组
另外,这里是命令行调用——以防我的引用方案出现问题。
REGEDIT4
[HKEY_CLASSES_ROOT\org-protocol]
@="URL:Org Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\org-protocol\shell]
[HKEY_CLASSES_ROOT\org-protocol\shell\open]
[HKEY_CLASSES_ROOT\org-protocol\shell\open\command]
@="\"cmd.exe\" \"/k\" \"C:\\cygwin\\bin\\bash.exe\" \"--login\" \"-c\" \"DISPLAY=:0 /usr/local/bin/emacsclient -c %1\""