如图所示
我想把org-roam-capture的特定模板直接绑定到某个快捷键上,因此我希望编写一个elsip函数并将其绑定在某个按键上, 百度谷歌答案可是都不管用,特又来寻找大佬帮助.
unread-command-events
该变量存储的值为一个由event组成的list,表示待读取的event.
该list中的event,以显示的顺序(即最前面的最先被使用)被读取,并且在使用后被删除
一般情况下,从该list中读取的event不会添加到当前命令的key sequence中(即不会被`this-command-keys’),因为该event在第一次读取时已经添加过一次了. 但若list中的element格式为’(t . EVENT)则表示强制将该event放入当前command的key sequence中
(listify-key-sequence key)
该函数将key(string或vector)转换为由单独event组成的list,可以很容易的将这个list放入`unread-command-events’中
(define-key global-map (kbd "C-c c") 'org-roam-capture)
就行
楼主是要将 选择一个特定的模板 绑定到快捷键,只绑定 org-roam-capture
的话达不到目的。
org-roam-capture 不能添加一个可选参数吗? 可以的话,简单包装一个特定模板 capture 命令不就可以了?
对,可以的,刚刚去看了下,如果是 org-capture
的话,甚至有直接的函数 org-capture-select-template
可以用,org-roam-capture
的话没有直接选择模板的独立函数,但它本身是接受两个参数的
(org-roam-capture &optional GOTO KEYS)
Launches an ‘org-capture’ process for a new or existing note.
This uses the templates defined at ‘org-roam-capture-templates’.
Arguments GOTO and KEYS see ‘org-capture’.
第一个参数 GOTO
不用管它,第二个参数 KEYS
就是用户选择模板的输入,所以这样就好了:
(defun add-default-roam-note ()
(interactive)
(org-roam-capture nil "d"))
(global-set-key [f4] 'add-default-roam-note)
谢谢啦,我再折腾折腾🙏🏻️
上面我给的函数我自己试过了是可以用的,你可以试试。