diff options
| author | cashmere <cashmere@autistici.org> | 2025-11-13 03:03:01 +0100 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2025-11-13 03:03:01 +0100 |
| commit | d4176fa946664cf5cddec1b814ebc4fd061f9f66 (patch) | |
| tree | 04ee225d4886171153ede1de293eeb283b06ee13 /config.org | |
| parent | a1f6d9a13d5c706450f754258b3f564209970d0e (diff) | |
| download | emacs-d4176fa946664cf5cddec1b814ebc4fd061f9f66.tar.gz | |
add better ibuffer management
Diffstat (limited to 'config.org')
| -rw-r--r-- | config.org | 117 |
1 files changed, 117 insertions, 0 deletions
@@ -312,6 +312,123 @@ (280 . "#b4befe")))) #+end_src +* ibuffer + +ibuffer is an integrated buffer management suite. + +If you have Emacs for a long time open or just like me, like to switch between different projects on a constant, keeping a good overview over you buffers is important. + +That's why I added the settings which I found [[https://olddeuteronomy.github.io/post/emacs-ibuffer-config/][here]]. + +I adjusted the config accordingly to my modes which I use on a frequent. + +#+begin_src emacs-lisp +(use-package ibuffer + :straight nil + :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)) + ("Rust" (or + (mode . rust-mode) + (mode . rust-ts-mode))) + ("Python" (or + (mode . python-ts-mode) + (mode . c-mode) + (mode . python-mode))) + ("Nix" (or + (mode . nix-mode) + (mode . nix-ts-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))) + ("Elfeed" (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 + +** nerd-icons-ibuffer + +To spice things up, I enabled the same Nerd Icons which are visible in dired to ibuffer. + +Not necessary but an eyecandy to look at! + +#+begin_src emacs-lisp +(use-package nerd-icons-ibuffer + :ensure t + :hook (ibuffer-mode . nerd-icons-ibuffer-mode)) +#+end_src + * smerge-mode #+begin_src emacs-lisp |
