(define-key minibuffer-local-map
[f3] (lambda () (interactive) (insert (buffer-name))))
, Как указано в разделе комментария и в другом месте, вышеупомянутый фрагмент кода не работает. (Извините, я должен был протестировать его перед регистрацией.:) Были отправлены некоторые меры; вот другой:
(define-key minibuffer-local-map [f3]
(lambda () (interactive)
(insert (buffer-name (window-buffer (minibuffer-selected-window))))))
Относительно завершения имени файла при издании shell-command
, возможно, этот клудж работал бы (это работает на меня на Emacs 23.0.60):
(require 'shell)
(define-key minibuffer-local-map (kbd "C-i") 'comint-dynamic-complete)
Вот то, как зафиксировать решение huaiyuan:
(define-key minibuffer-local-map [f3]
(lambda() (interactive) (insert (buffer-file-name (nth 1 (buffer-list))))))
, вероятно, необходимо добавить своего рода проверку ошибок в случае, если "другой" буфер не имеет никакого набора имени файла и (буферного имени файла) ноль возвратов.
Я подчинюсь huaiyuan о точно, что Вы спросили, но Вы могли также проверить Пропускающий текст посредством команды оболочки в Emacs как возможный альтернативный подход.