1
當我在外殼模式下輸入cd c:/dir/to/path
時,外殼模式遵循它的default-directory
到c:/dir/to/path
,這很好。但在訪問某個文件(c:/another/dir/file.ext)時,如何在不輸入cd c:/antoher/dir/file.ext
的情況下讓現有的shell目錄爲那個文件?emacs外殼模式遵循其默認目錄到當前文件
在emacs中是否有任何預先存在的功能?搜索了很多,但不幸發現。
我在Win7中使用Emacs 24.2.1。
編輯:
我寫了一個不好看的功能,如下所示。任何建議/意見將不勝感激(我是elisp的新手)。 (前綴交互調用,它會顯示當前目錄下的shell緩衝區,我一再認爲可能已經發明瞭一個比這更好的東西)。
(defun my-shell-with-current-directory (&optional arg)
(interactive "P")
(let* ((sp (get-process "shell"))
(spbuf (and sp (process-buffer sp)))
(dir (if buffer-file-name (file-name-directory buffer-file-name) default-directory)))
(if (and arg sp spbuf dir)
(progn
(comint-simple-send sp (concat "cd /d " dir))
(display-buffer spbuf)
(save-excursion
(set-buffer spbuf)
(cd dir)
)
)
(progn
(shell)
(comint-simple-send sp "setlocal enableextensions")
)
)
)
)
感謝您的意見。在閱讀完您的想法後,我添加了一個大致寫作的交互功能請看看,任何意見將不勝感激。 – Joonhwan