summaryrefslogtreecommitdiff
path: root/emacs/inits/13-ibuffer.el
diff options
context:
space:
mode:
authortslil clingman <>2019-09-11 19:18:14 -0400
committertslil clingman <>2019-09-11 19:18:14 -0400
commitac1a4884d03fc0495c773500d8a13f84b695fa43 (patch)
tree29e5ec49e0ce957d80d8f11a155b47840c74f488 /emacs/inits/13-ibuffer.el
Init
Diffstat (limited to 'emacs/inits/13-ibuffer.el')
-rw-r--r--emacs/inits/13-ibuffer.el70
1 files changed, 70 insertions, 0 deletions
diff --git a/emacs/inits/13-ibuffer.el b/emacs/inits/13-ibuffer.el
new file mode 100644
index 0000000..c46babe
--- /dev/null
+++ b/emacs/inits/13-ibuffer.el
@@ -0,0 +1,70 @@
+;; Time-stamp: <2019-05-26 18:21:05 (tslil@basingstoke)>
+
+(use-package ibuffer
+ :bind (("C-x C-b" . ibuffer))
+ :hook (ibuffer-mode . (lambda ()
+ (ibuffer-switch-to-saved-filter-groups "default")))
+ :config
+ (setq ibuffer-display-summary nil
+ ibuffer-saved-filter-groups
+ '(("default"
+ ("agda" (or (mode . agda2-mode)
+ (name . "^\\*[aA]gda")))
+ ("coq" (or (mode . coq-mode)
+ (mode . coq-goals-mode)
+ (mode . coq-response-mode)
+ (mode . coq-shell-mode)))
+ ("dired" (mode . dired-mode))
+ ("elisp" (or (mode . emacs-lisp-mode)
+ (name . "^\\*Backtrace\\*")))
+ ("emacs" (or (name . "^\\*scratch\\*$")
+ (name . "^\\*Messages\\*$")
+ (name . "^\\*init log\\*$")
+ (name . "^\\*Compile-Log\\*$")))
+ ("exwm" (mode . exwm-mode))
+ ("help" (or (mode . helpful-mode)
+ (name . "^\\*Help\\*$")))
+ ("irc" (mode . rcirc-mode))
+ ("magit" (name . "^magit[:-]"))
+ ("media" (or (mode . image-mode)
+ (mode . doc-view-mode)))
+ ("org" (mode . org-mode))
+ ("REPL" (name . "^\\*.*REPL.*\\*$"))
+ ("slime" (name . "^\\*slime-[^*]*\\*$"))
+ ("tex" (mode . latex-mode))
+ ("web" (or (mode . js2-mode)
+ (mode . js-mode)
+ (mode . html-mode)
+ (mode . css-mode)
+ (mode . mhtml-mode))))))
+
+ (defadvice ibuffer-update-title-and-summary (after remove-column-titles)
+ (with-current-buffer "*Ibuffer*"
+ (read-only-mode -1)
+ (goto-char 1)
+ (search-forward "-\n" nil t)
+ (delete-region 1 (point))
+ (let ((window-min-height 1))
+ ;; save a little screen estate
+ (shrink-window-if-larger-than-buffer))
+ (read-only-mode 1)))
+
+ (ad-activate 'ibuffer-update-title-and-summary)
+
+ (define-ibuffer-column size-h
+ (:name "Size" :inline t)
+ (cond
+ ((> (buffer-size) 1000000) (format "%7.1fM" (/ (buffer-size) 1000000.0)))
+ ((> (buffer-size) 100000) (format "%7.0fk" (/ (buffer-size) 1000.0)))
+ ((> (buffer-size) 1000) (format "%7.1fk" (/ (buffer-size) 1000.0)))
+ (t (format "%8d" (buffer-size)))))
+
+ (setq ibuffer-formats
+ '((mark modified read-only locked " "
+ (name 18 18 :left :elide)
+ " "
+ (size-h 9 -1 :right)
+ " "
+ (mode 16 16 :left :elide)
+ " "
+ filename-and-process))))