summaryrefslogtreecommitdiff
path: root/config/ibuffer/config-ibuffer-human-readable-size.el
diff options
context:
space:
mode:
Diffstat (limited to 'config/ibuffer/config-ibuffer-human-readable-size.el')
-rw-r--r--config/ibuffer/config-ibuffer-human-readable-size.el16
1 files changed, 16 insertions, 0 deletions
diff --git a/config/ibuffer/config-ibuffer-human-readable-size.el b/config/ibuffer/config-ibuffer-human-readable-size.el
new file mode 100644
index 0000000..5cec3a9
--- /dev/null
+++ b/config/ibuffer/config-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 'config-ibuffer-human-readable-size)