Um menu de buffer rápido e fácil para Emacs

A única coisa que absolutamente amo no IntelliJ é o pequeno menu de troca de buffer que você obtém com o Super + G. Desesperado para obter esse recurso no Emacs, criei um pouco do Lisp para ajudar a preencher a lacuna.

;; used for quick menu switching between buffers
(defun menu-list-from-buffers ()
(cons "PANE" (mapcar (lambda (e) (list (buffer-name e) e)) (remove-if (lambda (e) (string-match "\*.*\*" (buffer-name e)) )(buffer-list))))
)

(defun menu-switch ()
(interactive)
(set-window-buffer nil (car (x-popup-menu t (list "Switch To Buffer" (menu-list-from-buffers)))))
)

(global-set-key (kbd "s-g") 'menu-switch)

Observe que vinculei essa função a Super + G. Para usuários de Mac, é Apple + G. Solte aquele pequeno badboy em seu arquivo .emacs e pronto!

Quando você começar, ele ficará mais ou menos assim:

Cenário