简体   繁体   中英

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

For example, when you open a file via CxCf, 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?

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

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

ido-mode will bind Cx Cf to ido-find-file this allows you to interactively opening files (selecting between name collisions from within the minibuffer Cs 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM