summaryrefslogtreecommitdiff
path: root/init/km-ibuffer.el
diff options
context:
space:
mode:
Diffstat (limited to 'init/km-ibuffer.el')
-rw-r--r--init/km-ibuffer.el48
1 files changed, 48 insertions, 0 deletions
diff --git a/init/km-ibuffer.el b/init/km-ibuffer.el
new file mode 100644
index 0000000..3fa6a03
--- /dev/null
+++ b/init/km-ibuffer.el
@@ -0,0 +1,48 @@
+;; replace buffer-menu with ibuffer
+(global-set-key (kbd "C-x C-b") 'ibuffer)
+
+;; modified from http://martinowen.net/blog/2010/02/tips-for-emacs-ibuffer.html
+;; and here http://www.elliotglaysher.org/emacs/
+
+(setq ibuffer-saved-filter-groups
+ '(("home"
+ ("emacs-config" (or (filename . ".emacs.d")
+ (filename . ".el")))
+ ("org" (or (mode . org-mode)
+ (name . "^\\*Org Agenda")
+ (name . "^\\*Calendar\\*$")))
+ ("web" (or (mode . html-mode)
+ (mode . nxml-mode)
+ (mode . css-mode)))
+ ("r" (or (mode . ess-mode)
+ (name . "^\\*R\\*$")))
+ ("markup" (or (mode . markdown-mode)
+ (mode . rst-mode)))
+ ("lua" (name . ".lua$"))
+ ("perl" (name . ".pl$"))
+ ("python" (name . ".py$"))
+ ("git" (name . "\*git"))
+ ("text" (name . ".txt"))
+ ("shell" (name . ".sh$"))
+ ("latex" (or (mode . latex-mode)
+ (mode . LaTeX-mode)
+ (mode . bibtex-mode)
+ (mode . reftex-mode)))
+ ("dirs" (or (mode . dired-mode)
+ (name . "^\\*tramp")))
+ ("terminal" (name . "^\\*ansi-term\\*$"))
+ ("help" (or (name . "\*Help\*")
+ (name . "\*Apropos\*")
+ (name . "\*info\*")
+ (name . "^\\*Completions\\*$"))))))
+
+(add-hook 'ibuffer-mode-hook
+ '(lambda ()
+ (ibuffer-auto-mode 1) ; keep buffer list up-to-date
+ (ibuffer-switch-to-saved-filter-groups "home")))
+
+;; do not prompt to delete unmodified buffers
+(setq ibuffer-expert t)
+
+;; don't show empty filter groups
+(setq ibuffer-show-empty-filter-groups nil)