Some buffer and performance changes. Spiffed up ibuffer.
This commit is contained in:
126
config/ibuffer.org
Normal file
126
config/ibuffer.org
Normal file
@@ -0,0 +1,126 @@
|
||||
* IBuffer
|
||||
|
||||
Buffer management is a constant irritation with any editor. After
|
||||
having a bit of a performance issue when using [[https://github.com/florommel/bufferlo][bufferlo]] I've decided
|
||||
to try doing something with emacs's built in IBuffer.
|
||||
|
||||
This is *heavily* inspired, and mostly outright copied from this [[https://olddeuteronomy.github.io/post/emacs-ibuffer-config/][post]]
|
||||
by [[https://olddeuteronomy.github.io][The Emacs Cat]].
|
||||
|
||||
Icons can make identifying buffers easy at a glance so I think adding
|
||||
them is pretty handy.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package all-the-icons-ibuffer
|
||||
:ensure t
|
||||
:after (all-the-icons)
|
||||
:hook
|
||||
(ibuffer-mode . all-the-icons-ibuffer-mode))
|
||||
#+end_src
|
||||
|
||||
Now for the main part of the configuration. This provides a nice
|
||||
logical grouping for buffers. As I use this more I might change
|
||||
the grouping to be a bit less file type oriented, and lean more
|
||||
towards use case.
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package ibuffer :ensure nil
|
||||
:bind
|
||||
(("C-x B" . ibuffer))
|
||||
:config
|
||||
(setq ibuffer-expert t)
|
||||
(setq ibuffer-display-summary nil)
|
||||
(setq ibuffer-use-other-window nil)
|
||||
(setq ibuffer-show-empty-filter-groups nil)
|
||||
(setq ibuffer-default-sorting-mode 'filename/process)
|
||||
(setq ibuffer-title-face 'font-lock-doc-face)
|
||||
(setq ibuffer-use-header-line t)
|
||||
(setq ibuffer-default-shrink-to-minimum-size nil)
|
||||
(setq ibuffer-formats
|
||||
'((mark modified read-only locked " "
|
||||
(name 30 30 :left :elide)
|
||||
" "
|
||||
(size 9 -1 :right)
|
||||
" "
|
||||
(mode 16 16 :left :elide)
|
||||
" " filename-and-process)
|
||||
(mark " "
|
||||
(name 16 -1)
|
||||
" " filename)))
|
||||
(setq ibuffer-saved-filter-groups
|
||||
'(("Main"
|
||||
("Directories" (mode . dired-mode))
|
||||
("C++" (or
|
||||
(mode . c++-mode)
|
||||
(mode . c++-ts-mode)
|
||||
(mode . c-mode)
|
||||
(mode . c-ts-mode)
|
||||
(mode . c-or-c++-ts-mode)))
|
||||
("Python" (or
|
||||
(mode . python-ts-mode)
|
||||
(mode . c-mode)
|
||||
(mode . python-mode)))
|
||||
("Build" (or
|
||||
(mode . make-mode)
|
||||
(mode . makefile-gmake-mode)
|
||||
(name . "^Makefile$")
|
||||
(mode . change-log-mode)))
|
||||
("Scripts" (or
|
||||
(mode . shell-script-mode)
|
||||
(mode . shell-mode)
|
||||
(mode . sh-mode)
|
||||
(mode . lua-mode)
|
||||
(mode . bat-mode)))
|
||||
("Config" (or
|
||||
(mode . conf-mode)
|
||||
(mode . conf-toml-mode)
|
||||
(mode . toml-ts-mode)
|
||||
(mode . conf-windows-mode)
|
||||
(name . "^\\.clangd$")
|
||||
(name . "^\\.gitignore$")
|
||||
(name . "^Doxyfile$")
|
||||
(name . "^config\\.toml$")
|
||||
(mode . yaml-mode)))
|
||||
("Web" (or
|
||||
(mode . mhtml-mode)
|
||||
(mode . html-mode)
|
||||
(mode . web-mode)
|
||||
(mode . nxml-mode)))
|
||||
("CSS" (or
|
||||
(mode . css-mode)
|
||||
(mode . sass-mode)))
|
||||
("JS" (or
|
||||
(mode . js-mode)
|
||||
(mode . rjsx-mode)))
|
||||
("Markup" (or
|
||||
(mode . markdown-mode)
|
||||
(mode . adoc-mode)))
|
||||
("Org" (mode . org-mode))
|
||||
("LaTeX" (name . "\.tex$"))
|
||||
("Magit" (or
|
||||
(mode . magit-blame-mode)
|
||||
(mode . magit-cherry-mode)
|
||||
(mode . magit-diff-mode)
|
||||
(mode . magit-log-mode)
|
||||
(mode . magit-process-mode)
|
||||
(mode . magit-status-mode)))
|
||||
("Apps" (or
|
||||
(mode . elfeed-search-mode)
|
||||
(mode . elfeed-show-mode)))
|
||||
("Fundamental" (or
|
||||
(mode . fundamental-mode)
|
||||
(mode . text-mode)))
|
||||
("Emacs" (or
|
||||
(mode . emacs-lisp-mode)
|
||||
(name . "^\\*Help\\*$")
|
||||
(name . "^\\*Custom.*")
|
||||
(name . "^\\*Org Agenda\\*$")
|
||||
(name . "^\\*info\\*$")
|
||||
(name . "^\\*scratch\\*$")
|
||||
(name . "^\\*Backtrace\\*$")
|
||||
(name . "^\\*Messages\\*$"))))))
|
||||
:hook
|
||||
(ibuffer-mode . (lambda ()
|
||||
(ibuffer-switch-to-saved-filter-groups "Main")))
|
||||
)
|
||||
#+end_src
|
||||
Reference in New Issue
Block a user