2011-02-26 17 views
5

Düzenleme sırasında bir dosya adı/yol satır içi eklemek için bir yol arıyorum. Satır içi bir ido tarzı dosya seçimi gibi bir şey mükemmel olurdu. Orada böyle bir şey var mı?Emacs yerinde dosya adı/yol ekleme

+0

Çalıştığım bir şey yazdım, ancak oldukça ortaçağ ve basit: hala daha iyi bir çözümle ilgilenen http://pastebin.com/tVHvM8. – re5et

+0

Yuva * geçerli * dosyasının mutlak yol adını veya herhangi birini tamamlandı mı? –

+0

, yapıştırmanın tamamlandığı şekilde tamamlanır. Biraz meraklı bir şey güzel olurdu, belki de mini-buffer – re5et

cevap

4

isteyeceksiniz. Bu varsayılan olarak yüklenmemiş gibi görünüyor, ancak comint-mode tarafından sağlanan. Böylece senin ~/.emacs veya benzeri

(autoload 'comint-dynamic-complete-filename "comint" nil t) 
(global-set-key "\M-]" 'comint-dynamic-complete-filename) 

gibi bir şey koyabilirsiniz. Kendi tercih ettiğiniz tuş vuruşlarını kullanın.

1

Tamam, sadece bir noktada mevcut dosya adı eklemek istiyorsanız, o zaman

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

yapmalı. Eğer herhangi bir yola bir dosyayı bulmak mümkün olmasını istiyorsanız

, o zaman çizgisi 1714 hakkında en files.el yılında find-file-noselect kod bazı çoğaltmak isteyeceksiniz. Bunun bir bir işlevi bağlamak istiyorsanız iki durumda da

, muhtemelen hep bunun için comint-dynamic-complete-filename kullanmak

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

Emacs 24 kullanıyorum ve 1768'de find-file-noselect'i başlatıyorsunuz. – re5et

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))