Emacs 在组织模式下:一次按键打开附件

Emacs 在组织模式下:一次按键打开附件,emacs,org-mode,Emacs,Org Mode,因为我想用一次按键打开附件文件,所以我正在寻找一个键绑定,它基本上分别与organattach o或C-cca o相同。这应该适用于组织文件和议程 我定义了这个keybinding(全局设置键(kbd“”)“org attach open),但这在议程中不起作用,提示需要绝对的“org attach directory”在缓冲区中附加而不需要文件名 复制这一点的最小工作示例:在议程中,将点移动到带有附件的行上,然后执行M-x org attach open 我如何定义一个键绑定,该键绑定准确地执

因为我想用一次按键打开附件文件,所以我正在寻找一个键绑定,它基本上分别与
organattach o
C-cca o
相同。这应该适用于组织文件和议程

我定义了这个keybinding
(全局设置键(kbd“”)“org attach open)
,但这在议程中不起作用,提示
需要绝对的“org attach directory”在缓冲区中附加而不需要文件名

复制这一点的最小工作示例:在议程中,将点移动到带有附件的行上,然后执行
M-x org attach open


我如何定义一个键绑定,该键绑定准确地执行
org attach o
,而不考虑我从何处调用它?

当用户从
*org Agenda*
缓冲区调用
org attach
后选择字母
o
时,用户技术上已经离开了
*org Agenda*
缓冲区(即使这是在引擎盖下完成的)。因此,在运行
org attach open
之前,我们需要一个与
org attach
执行相同操作的新函数

(defun组织议程附加打开()
“我的文档字符串。”
(互动)
(除非(eq专业模式“组织议程模式”)
(let((退出时调试为零))
(发出“退出”的信号(“这是专门为“*组织议程*”)编写的)
(let((标记(或(获取文本属性(点))org hd标记)
(获取文本属性(点)“组织标记”))
(如果标记
(省去远足
(设置缓冲区(标记缓冲区标记))
(转到字符标记)
(组织返回标题t)
(以交互方式调用“组织连接打开”)
(错误“当前行中没有任务”))

组织模式和组织议程模式有不同的键盘映射,因此你需要两个键盘快捷键——它们不是全局的。谷歌
组织模式映射
组织议程模式映射
定义键
组织模式
组织议程模式
。应该有大约一个zillion threads on the issue.如果你没有找到在加载后使用
eval
的例子,那么也可以用谷歌搜索。或者,使用
require
(这会导致在Emacs启动时加载整个库):
(require'org agenda)(定义关键的组织议程模式映射“t”'butterfly)
(可能是[?]与键盘快捷键问题无关)关于收到绝对附件目录的提示,提供一个简单的工作示例可能会有所帮助,以便论坛读者能够重现该问题,然后提出解决方案。文档字符串在相关部分中说明:“如果有多个附件,系统将提示您输入文件名……”谢谢您的建议,法律列表。
(加载后使用eval“org”(定义关键组织模式映射(kbd)”)“org attach open))
按预期适用于组织模式。不过,为组织议程模式映射定义它,即
(加载后使用eval“org agenda”(定义关键组织议程模式图(kbd“”)“组织连接打开”)
在执行时返回与原始问题中提到的相同的错误消息。我通过一个最简单的工作示例更新了原始问题。在您的特定设置中,是否可能为
组织附加目录使用绝对路径
还是您认为只有相对路径才能满足您的需要?如果前者是accep表,然后向
(setq org attach directory)/absolute/path/to/data/directory/)的
组织模式
配置中添加一行
--正尾斜杠是默认值,因此我将采用相同的格式。如果必须只有相对路径,则似乎
org attach open
不适用于
*org Agenda*
(非文件访问缓冲区)除非存在到上述目录的绝对路径,否则我需要实际路径,因为我的议程文件位于不同的路径中,具有不同的本地数据目录。这就是为什么我要寻找“基本上与
org attach o
C-C-a o
相同的密钥绑定”.这些确实在议程中起作用。。。