Rayne
Rayne

Reputation: 32675

Is there any way to automatically close filename completetion buffers in Emacs?

For example, when you open a file via C-x-C-f, you can TAB complete file names, and if there are more than one possible completions, it will pop open a completion buffer with a list of possible completions. The problem is, after you've opened the file, the window the buffer was in switches back to normal, but it doesn't close. Is there any way I can make those buffers close automatically after the file has been opened?

Upvotes: 15

Views: 1487

Answers (2)

Xavier Maillard
Xavier Maillard

Reputation: 958

Sorry to enter really late on this but this is how I do:

;; Remove completion buffer when done
(add-hook 'minibuffer-exit-hook 
      '(lambda ()
         (let ((buffer "*Completions*"))
           (and (get-buffer buffer)
            (kill-buffer buffer)))))

Tested on GNU Emacs 22.x and 23.x

Upvotes: 14

kjfletch
kjfletch

Reputation: 5494

Although it does not directly solve your problem have you considered ido-mode as a mechanism for opening files?

ido-mode will bind C-x C-f to ido-find-file this allows you to interactively opening files (selecting between name collisions from within the minibuffer C-s and various other nifty features) I find it a much easier method of finding files and it will get rid of the *Completions* buffer altogether.

Upvotes: 7

Related Questions