2011-02-26 92 views
5

我正在尋找一種方法來插入文件名/路徑內嵌編輯時。像內聯ido風格的文件選擇就像是完美的。那裏有什麼嗎?Emacs就地文件名/路徑插入

+0

我寫了一些工作,但它是相當中世紀和簡單的:http://pastebin.com/tVHvM8st仍然有興趣在一個更好的解決方案。 – re5et 2011-02-26 20:31:04

+0

Do yu想插入* current *文件的absolue路徑名,或者任何,完成? – 2011-02-26 20:43:43

+0

任何完成,如粘貼。一些小愛好者會很好,也許內聯不使用迷你緩衝區 – re5et 2011-02-26 20:45:28

回答

4

我總是用comint-dynamic-complete-filename這一點。這似乎沒有默認加載,但由comint-mode提供。因此,你可以把類似

(autoload 'comint-dynamic-complete-filename "comint" nil t) 
(global-set-key "\M-]" 'comint-dynamic-complete-filename) 
~/.emacs或類似

。當然,請使用您自己的首選鍵。

1

好吧,如果你只想在點插入當前文件名,然後

(insert (expand-file-name (buffer-file-name))) 

應該這樣做。

如果您希望能夠在任何路徑中查找文件,那麼您需要在第1714行左右複製find-file-noselectfiles.el中的部分代碼。

在這兩種情況下,如果要綁定這個功能,你可能會想

(defun insert-file-name-at-point() 
    (interactive) ....) 
+0

我使用的是emacs 24,而find-file-noselect從1768開始,它指的是哪一點? – re5et 2011-02-26 21:50:16

1
(defun insert-file-name (file &optional relativep) 
    "Read file name and insert it at point. 
With a prefix argument, insert only the non-directory part." 
    (interactive "fFile: \nP") 
    (when relativep (setq file (file-name-nondirectory file))) 
    (insert file))