的一種方法是設置initial-default-directory
到nil
,但你不會有一個默認的目錄中的所有,甚至不是你的主目錄:
(setq insert-default-directory nil)
如果你希望你的home目錄露面作爲默認設置,這不容易做到。在交互式調用find-file
時,會導致read-file-name
的調用,該調用具有相當複雜的默認行爲。
使用setq-default
對default-directory
沒有幫助,因爲它的值是在您正在查看的緩衝區的文件被訪問時設置的。
唯一的選擇我看到的是用自己的find-file
版本是這樣的:
(defun my-find-file-read-args (prompt mustmatch)
(list (read-file-name prompt "~/" nil mustmatch)
t))
(defun my-find-file (filename &optional wildcards)
"Edit file FILENAME.
Like `find-file` but always uses ~ as the default directory"
(interactive
(my-find-file-read-args "Find file: "
(confirm-nonexistent-file-or-buffer)))
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(mapcar 'switch-to-buffer (nreverse value))
(switch-to-buffer value))))
(global-set-key (kbd "C-x C-f") 'my-find-file)
你知道,當你輸入文件路徑,你可以簡單地鍵入'/〜/'在任何時間點忽略該點之前的所有內容,並從'〜/'開始查找? (同樣用'//'去文件系統根目錄。) – phils
我是,謝謝。但是,我想保留從Emacs開始的目錄,而不僅僅是主目錄。 –