emacs ow 我可以使用预先指定的默认目录进行 helm-find 吗?
emacs ow can I helm-find with default directory pre-specified?
我主要用emacs做笔记。我所有的笔记都在:
~/Dropbox/Uni/Notes
我想绑定一个键盘快捷键(例如 C-f12)来执行始终在与源缓冲区无关的上述目录中开始的 helm-find。
我试过:
(global-set-key (kbd "C-<f2>") (lambda () (interactive) (helm-find "~/Dropbox/Uni/Notes/")))
但是当我运行它时,它仍然提示我输入'DefaultDirectory',这通常与当前缓冲区相同。
?
[编辑]
我做了一个破解:
(global-set-key (kbd "<C-f2>")
(lambda ()
(interactive)
(find-file "~/Dropbox/Uni/Notes/leo.org")
(helm-find nil)))
这会打开一个文件,然后当我执行 helm-find 时,它是相对于 leo.org 的位置。但最好有更好的解决方案。
[编辑]
以下解决方案完美运行。
给你:
(defmacro helm-find-note (dir)
`(defun ,(intern (format "helm-find-note-%s" dir)) ()
(interactive)
(let ((default-directory ,dir))
(helm-find nil))))
(global-set-key (kbd "C-M-3") (helm-find-note "~/Downloads"))
我主要用emacs做笔记。我所有的笔记都在: ~/Dropbox/Uni/Notes
我想绑定一个键盘快捷键(例如 C-f12)来执行始终在与源缓冲区无关的上述目录中开始的 helm-find。
我试过:
(global-set-key (kbd "C-<f2>") (lambda () (interactive) (helm-find "~/Dropbox/Uni/Notes/")))
但是当我运行它时,它仍然提示我输入'DefaultDirectory',这通常与当前缓冲区相同。
?
[编辑]
我做了一个破解:
(global-set-key (kbd "<C-f2>")
(lambda ()
(interactive)
(find-file "~/Dropbox/Uni/Notes/leo.org")
(helm-find nil)))
这会打开一个文件,然后当我执行 helm-find 时,它是相对于 leo.org 的位置。但最好有更好的解决方案。
[编辑] 以下解决方案完美运行。
给你:
(defmacro helm-find-note (dir)
`(defun ,(intern (format "helm-find-note-%s" dir)) ()
(interactive)
(let ((default-directory ,dir))
(helm-find nil))))
(global-set-key (kbd "C-M-3") (helm-find-note "~/Downloads"))