2011-02-26 45 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))