4

Sometimes when I am using helm, I want to make the helm completion buffer as big as possible. I know that helm-enlarge-window will make the window grow by 1 line, but this is awkward and still doesn't quite achieve the desired result. I also know that setting (setq helm-full-frame t) will make helm open full-frame by default, but I don't want all helm buffer full frame all the time.

What I really want is to bind a key that will instantly expand the helm completion buffer to full-frame. I have tried this (where *helm XYZ* is the name of the current helm buffer):

 (with-current-buffer "*helm XYZ*" (delete-other-windows))

but I get the error "Can't expand minibuffer to full frame." Any other suggestions for how I can toggle the helm buffer to be full frame?

6

The error you get is because point is in the minibuffer waiting for completion when you call with-current-buffer. Fortunately, helm provides helm-window to select the completion window. The following function leverages this to achieve what you want.

 (defun my-make-helm-full-frame ()
   (interactive)
   (with-selected-window (helm-window)
     (delete-other-windows)))

Bind it to a key in helm-map like this

(define-key helm-map (kbd "<f9>") 'my-make-helm-full-frame)

so that pressing F9 when helm is active maximized the window. Pressing C-g quits helm and restores your original window. If you use winner-mode you can call winner-undo bound to C-c left to restore the completion window to its original size.

  • I needed to add (require 'helm) to my init file first to get this working. I'm also finding the bit with winner-mode to behave a bit strange. Often it makes the Helm window disappear completely. – Brian Z Mar 6 '15 at 12:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.