summaryrefslogtreecommitdiffstats
path: root/lisp/init-ibuffer.el
blob: 2f194a42da8988390694c770f93030101f8320d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(use-package ibuffer
  :init
  ;; disable confirmation for killing unmodified buffers
  (setq ibuffer-expert t)

  ;; sort buffers by name
  (setq-default ibuffer-default-sorting-mode 'alphabetic)

  ;; hide empty filter groups
  (setq ibuffer-show-empty-filter-groups nil)

  ;; use ibuffer
  :bind ("C-x C-b" . ibuffer-other-window)

  :config
  ;; keep buffer list up to date and group ibuffer by repository root
  (add-hook 'ibuffer-hook
            (lambda ()
              (ibuffer-auto-mode 1)
              (ibuffer-vc-set-filter-groups-by-vc-root)
              ;; make C-o and o behave as in dired
              (define-key ibuffer-mode-map (kbd "o")
                'ibuffer-visit-buffer-other-window)
              (define-key ibuffer-mode-map (kbd "C-o")
                'ibuffer-visit-buffer-other-window-noselect))))

(use-package ibuffer-vc)

(provide 'init-ibuffer)