请教下,有办法键绑定C-u C-c C-l这组键吗?

请教下,有办法键绑定C-u C-c C-l(插入file格式的org-insert-link)这组键吗,我设置(global-set-key [(f10)] (kbd “C-u C-c C-l”)),但却直接返回current文件夹下第一个文件的链接。有其他办法吗?

我想你可能是这个意思: (global-set-key (kbd "<f10>") 'org-insert-link)

不是,回过来看,我对C-u了解不够,提的问题错了。实际上C-c C-l会先有一堆选项如图示,而我想直接选定file而跳过这个步骤,有好的办法吗?org-insert-link选项

(defun abs-no-name-space/org-insert-link ()
  (interactive)
  (let ((current-prefix-arg '(4)))
    (call-interactively 'org-insert-link)))

(global-set-key (kbd "<f10>") 'abs-no-name-space/org-insert-link)

呼叫 abs-no-name-space/org-insert-link 或者按下 f10 .

1 个赞

解决我的问题了,非常感谢!

如果要为加了 universal argument C-u 的命令绑定快捷键, 重点是认识到 C-u 的作用是为其后接的交互式命令加了一个 argument, 这个 argument 是 '(4), 按 C-u 两次是 '(16), 按 C-u 三次是 '(64)

以命令 org-latex-preview 为例:

  • C-u org-latex-preview 等价于 M-: (org-latex-preview '(4)), 取消当前 headline 下的所有 fragments 的图片显示 (显示 latex 源码)
  • C-u C-u org-latex-preview 等价于 M-: (org-latex-preview '(16)) , 在当前 buffer 内用图片显示所有的 latex fragments.
  • C-u C-u C-u org-latex-preview 等价于 M-: (org-latex-preview '(64)), 取消当前 buffer 内的所有 latex fragments 的图片显示 (显示 latex 源码)

按照上面的说明, 你要的函数定义除了用你已经采用的答案, 还可以简单写为

(defun my-org-insert-file-link ()
  (interactive)
  (org-insert-link '(4)))
3 个赞

感觉大佬的解释,感觉一下就明明白白了。 :+1: :+1: :+1: