Emacs 一个备用的查找文件功能,每次都使用相同的默认文件夹
我想绑定super和9来打开“find file:”,“C-x C-f”菜单,在用户输入字段中~/x/作为“默认路径”,无论我当前打开的文件在哪个目录中。不幸的是,我的elisp技能相当基本。我真的很感激你能帮我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
(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读取文件名
)