====== GNU Emacs ====== GNU Emacs is my editor of choice and it has been for quite a long time. I use vanilla Emacs, configuring it manually each time I start using a computer. ===== Configuration ===== Here's the key part of my configuration, with some comments. ==== Packages ==== I only use Melpa packages. (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) (package-initialize) ==== Behaviour ==== I hide everything I can, keep some (numbered) versions. I use FreeBSD, so I haven't got ''ls'' extension Dired usually uses. (setq inhibit-startup-message t initial-scratch-message "" version-control t delete-old-versions t kept-old-versions 10 kept-new-versions 5 dired-kept-versions 5 uniquify-buffer-name-style 'post-forward-angle-brackets uniquify-strip-common-suffix t line-move-visual nil history-length 200 visible-bell t) (auto-save-visited-mode 1) (save-place-mode 1) (savehist-mode 1) (setq dired-use-ls-dired nil) (calendar-set-date-style 'iso) (set-language-environment "Polish") (set-default-coding-systems 'utf-8) (setq calendar-week-start-day 1 display-time-format "%d%^b W%0V") (menu-bar-mode -1) (tool-bar-mode -1) (blink-cursor-mode 1) (setq blink-cursor-blinks -1) (display-time-mode 1) (display-battery-mode 1) (setq-default truncate-lines nil fill-column 78) (show-paren-mode t) (setq show-paren-style 'parenthesis show-paren-delay 0.3) ==== Completion ==== I use ''orderless'' completion (available as a package), which lets me complete items based on parts of their names but not in their exact order. It's a very neat way of looking up or even discovering things in Emacs! (require 'orderless) (setq completion-styles '(orderless)) ===== Extensions ===== I use following extensions: * [[https://orgmode.org/|Org-Mode]] * [[https://protesilaos.com/emacs/denote|Denote]] * [[https://www.emacswiki.org/emacs/CompanyMode|Company]] * Vertico, Marginalia, and Consult * [[https://emacs-lsp.github.io/|Language Server Protocol]] with [[https://github.com/emacs-lsp/lsp-treemacs|LSP Treemacs]] * Programming language modes ===== Display ===== I change themes from time to time, with several standing out for being on my list for a long time: * flatland * timu-spacegrey * tron-legacy * base16-darkviolet * modus-operandi * dakrone-light * tok I prefer fonts with programming ligatures. After some time spent with Fira Code I've changed to [[https://larsenwork.com/monoid/|Monoid open-source coding font]]. So far I enjoy it (writing this 2025-03-15).