(require 'config-package) (use-package ibuffer :bind ("C-x C-b" . ibuffer) :init (setq-default ibuffer-eliding-string "…") (setq ibuffer-show-empty-filter-groups nil ibuffer-formats '((mark modified read-only " " (name 30 30 :left :elide) " " (size 9 -1 :right) " " (mode 16 16 :left :elide) " " filename-and-process) (mark " " (name 16 -1) " " filename)) ibuffer-saved-filter-groups (quote (("default" ("dired" (mode . dired-mode)) ("elisp" (mode . emacs-lisp-mode)) ("emacs" (or (name . "^\\*.*\\*$") (mode . fundamental-mode))) ("go" (mode . go-mode)) ("java" (mode . java-mode)) ("json" (mode . json-mode)) ("lisp" (mode . lisp-mode)) ("magit" (mode . magit-mode)) ("puppet" (mode . puppet-mode)) ("python" (mode . python-mode)) ("repl" (name . "repl")) ("ruby" (mode . ruby-mode)) ("rust" (mode . rust-mode)) ("sh" (mode . sh-mode)) ("text" (mode . text-mode)))))) (add-hook 'ibuffer-mode-hook ;; organise by filter-groups '(lambda () (ibuffer-auto-mode 1) (setq mode-name "≣") (ibuffer-switch-to-saved-filter-groups "default")))) (provide 'module-ibuffer)