(define-key minibuffer-local-map [f3] (lambda () (interactive) (insert (buffer-name (current-buffer-not-mini))))) (defun current-buffer-not-mini () "Return current-buffer if current buffer is not the *mini-buffer* else return buffer before minibuf is activated." (if (not (window-minibuffer-p)) (current-buffer) (if (eq (get-lru-window) (next-window)) (window-buffer (previous-window)) (window-buffer (next-window))))) (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)))))) (require 'shell) (define-key minibuffer-local-map (kbd "C-i") 'comint-dynamic-complete) (define-key minibuffer-local-map [f3] (lambda() (interactive) (insert (buffer-file-name (nth 1 (buffer-list))))))