]> jturnerusa.dev Git - emacs.d/commitdiff
setup ibuffer
authorJohn Turner <jturner.usa@gmail.com>
Fri, 26 Aug 2022 02:58:11 +0000 (22:58 -0400)
committerJohn Turner <jturner.usa@gmail.com>
Fri, 26 Aug 2022 02:58:11 +0000 (22:58 -0400)
config/ibuffer/config-ibuffer-filter-groups.el [new file with mode: 0644]
config/ibuffer/config-ibuffer-human-readable-size.el [new file with mode: 0644]
config/ibuffer/config-ibuffer-never-show.el [new file with mode: 0644]
config/ibuffer/config-ibuffer.el [new file with mode: 0644]
config/keys/config-keys.el
load-config.el

diff --git a/config/ibuffer/config-ibuffer-filter-groups.el b/config/ibuffer/config-ibuffer-filter-groups.el
new file mode 100644 (file)
index 0000000..89f60e3
--- /dev/null
@@ -0,0 +1,8 @@
+(setq ibuffer-saved-filter-groups
+      '(("default"
+         ("misc" (name . "^\\*.*$"))
+         ("dired" (mode . dired-mode)))))
+
+(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default")))
+
+(provide 'config-ibuffer-filter-groups)
diff --git a/config/ibuffer/config-ibuffer-human-readable-size.el b/config/ibuffer/config-ibuffer-human-readable-size.el
new file mode 100644 (file)
index 0000000..5cec3a9
--- /dev/null
@@ -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 'config-ibuffer-human-readable-size)
diff --git a/config/ibuffer/config-ibuffer-never-show.el b/config/ibuffer/config-ibuffer-never-show.el
new file mode 100644 (file)
index 0000000..f21554f
--- /dev/null
@@ -0,0 +1,11 @@
+(defvar config-ibuffer-never-show '("^\\*Messages\\*$"
+                                    "^\\*Help\\*$"
+                                    "^\\*Completions\\*$"
+                                    "^\\*Backtrace\\*$"
+                                    "^\\*Async-native-compile-log\\*$"))
+
+(mapc (lambda (p)
+        (add-to-list 'ibuffer-never-show-predicates p))
+      config-ibuffer-never-show)
+
+(provide 'config-ibuffer-never-show)
diff --git a/config/ibuffer/config-ibuffer.el b/config/ibuffer/config-ibuffer.el
new file mode 100644 (file)
index 0000000..ddc104d
--- /dev/null
@@ -0,0 +1,22 @@
+(require 'ibuffer)
+(require 'ibuf-ext)
+(require 'config-ibuffer-human-readable-size)
+(require 'config-ibuffer-never-show)
+(require 'config-ibuffer-filter-groups)
+
+(setq ibuffer-display-summary nil
+      ibuffer-expert t)
+
+(setq ibuffer-formats
+      '((mark modified read-only locked " "
+              (name 18 18 :left :elide)
+              " "
+              (size-human-readable 5 5 :right)
+              " "
+              (mode 16 16 :left :elide)
+              " " filename-and-process)
+        (mark " "
+              (name 16 -1)
+              " " filename)))
+      
+(provide 'config-ibuffer)
index 6d74b0a92b5a01d07c8ce399a9f4d5eeae38c5a7..286521cc856793fb9f171658c66529fb391dba74 100644 (file)
@@ -7,5 +7,6 @@
 (global-unset-key (kbd "<C-up>"))
 (global-unset-key (kbd "<C-down>"))
 (global-set-key   (kbd "C-x k")     'kill-buffer)
+(global-set-key   (kbd "C-x C-b")   'ibuffer)
 
 (provide 'config-keys)
index 4e34a2d0cd9b186ee68b0a9ba4878410409ec063..231787d07b10f1b51957b4f16f46b4f11cadb2b9 100644 (file)
@@ -9,6 +9,7 @@
   (add-to-list 'load-path (file-name-concat config-directory "flycheck"))
   (add-to-list 'load-path (file-name-concat config-directory "flymake"))
   (add-to-list 'load-path (file-name-concat config-directory "garbage-collection"))
+  (add-to-list 'load-path (file-name-concat config-directory "ibuffer"))
   (add-to-list 'load-path (file-name-concat config-directory "keys"))
   (add-to-list 'load-path (file-name-concat config-directory "man"))
   (add-to-list 'load-path (file-name-concat config-directory "lsp-mode"))
@@ -30,6 +31,7 @@
 (require 'config-electric)
 (require 'config-flymake)
 (require 'config-garbage-collection)
+(require 'config-ibuffer)
 (require 'config-keys)
 (require 'config-man)
 (require 'config-package)