Emacs 一个备用的查找文件功能,每次都使用相同的默认文件夹

Emacs 一个备用的查找文件功能,每次都使用相同的默认文件夹,emacs,editor,elisp,Emacs,Editor,Elisp,我想绑定super和9来打开“find file:”,“C-x C-f”菜单,在用户输入字段中~/x/作为“默认路径”,无论我当前打开的文件在哪个目录中。不幸的是,我的elisp技能相当基本。我真的很感激你能帮我 (global-set-key (kbd "s-9") 'enter_find_file_with_dir_x_as_default) (defun enter_find_file_with_dir_x_as_default () "Enter find file with the

我想绑定super和9来打开“find file:”,“C-x C-f”菜单,在用户输入字段中~/x/作为“默认路径”,无论我当前打开的文件在哪个目录中。不幸的是,我的elisp技能相当基本。我真的很感激你能帮我

(global-set-key (kbd "s-9") 'enter_find_file_with_dir_x_as_default)

(defun enter_find_file_with_dir_x_as_default ()
"Enter find file with the path ~/x/ as the default input every time."
())

只需定义一个调用
read file name
的命令,并将所需目录作为默认目录(在
interactive
spec中),然后对读取的文件名调用
find file

(defun my-find-file (file)
  "..."
  (interactive (list (read-file-name "File: " "~/x/")))
  (find-file file))
请参阅文档中的
读取文件名
,以确定您可能需要的其他参数(例如,您是只接受现有文件名还是允许新的文件缓冲区)

还请注意,如果要将其绑定到一个键,那么它必须是一个命令,因此它需要一个
交互式
规范。如果只需要一个从目录
~/x/
开始读取文件名的函数,那么答案是
读取文件名
——只需将它作为
~/x/
参数传递即可

有关更多信息,请参阅Elisp手册,节点
读取文件名
。(
C-h i
;选择
Elisp
i读取文件名