====== 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).