diff options
Diffstat (limited to 'init/ibuffer')
-rw-r--r-- | init/ibuffer/init-ibuffer-filter-groups.el | 10 | ||||
-rw-r--r-- | init/ibuffer/init-ibuffer-human-readable-size.el | 16 | ||||
-rw-r--r-- | init/ibuffer/init-ibuffer-never-show.el | 13 | ||||
-rw-r--r-- | init/ibuffer/init-ibuffer.el | 22 |
4 files changed, 61 insertions, 0 deletions
diff --git a/init/ibuffer/init-ibuffer-filter-groups.el b/init/ibuffer/init-ibuffer-filter-groups.el new file mode 100644 index 0000000..fbdd8ff --- /dev/null +++ b/init/ibuffer/init-ibuffer-filter-groups.el @@ -0,0 +1,10 @@ +(setq ibuffer-saved-filter-groups + '(("default" + ("Misc" (and (name . "^\\*.*$") + (not (mode . Man-mode)))) + ("Dired" (mode . dired-mode)) + ("Man" (mode . Man-mode))))) + +(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default"))) + +(provide 'init-ibuffer-filter-groups) diff --git a/init/ibuffer/init-ibuffer-human-readable-size.el b/init/ibuffer/init-ibuffer-human-readable-size.el new file mode 100644 index 0000000..6d62521 --- /dev/null +++ b/init/ibuffer/init-ibuffer-human-readable-size.el @@ -0,0 +1,16 @@ +(define-ibuffer-column size-human-readable + (:name "Size" :inline t) + (let ((size (buffer-size))) + (cond + ((> size (expt 1000 4)) + (error "buffer is over 1TB large!")) + ((> size (expt 1000 3)) + (format "%sG" (/ size (expt 1000 3)))) + ((> size (expt 1000 2)) + (format "%sM" (/ size (expt 1000 2)))) + ((> size 1000) + (format "%sK" (/ size 1000))) + (t + (format "%sB" size))))) + +(provide 'init-ibuffer-human-readable-size) diff --git a/init/ibuffer/init-ibuffer-never-show.el b/init/ibuffer/init-ibuffer-never-show.el new file mode 100644 index 0000000..0cf8db2 --- /dev/null +++ b/init/ibuffer/init-ibuffer-never-show.el @@ -0,0 +1,13 @@ +(defvar init-ibuffer-never-show '("^\\*Messages\\*$" + "^\\*Help\\*$" + "^\\*Completions\\*$" + "^\\*Backtrace\\*$" + "^\\*Async-native-compile-log\\*$" + "^\\*Native-compile-Log\\*$" + "^\\*Warnings\\*$")) + +(mapc (lambda (p) + (add-to-list 'ibuffer-never-show-predicates p)) + init-ibuffer-never-show) + +(provide 'init-ibuffer-never-show) diff --git a/init/ibuffer/init-ibuffer.el b/init/ibuffer/init-ibuffer.el new file mode 100644 index 0000000..209328c --- /dev/null +++ b/init/ibuffer/init-ibuffer.el @@ -0,0 +1,22 @@ +(require 'ibuffer) +(require 'ibuf-ext) +(require 'init-ibuffer-human-readable-size) +(require 'init-ibuffer-never-show) +(require 'init-ibuffer-filter-groups) + +(setq ibuffer-display-summary nil + ibuffer-expert t) + +(setq ibuffer-formats + '((mark modified read-only locked " " + (name 32 32 :left :elide) + " " + (size-human-readable 5 5 :right) + " " + (mode 16 16 :left :elide) + " " filename-and-process) + (mark " " + (name 16 -1) + " " filename))) + +(provide 'init-ibuffer) |