I love the versatility of emacs, even without any additional packages. You get a powerful and fast editing environment that is ridiculously extendable if you so desire.
I used to maintain quite an extensive
.emacs configuration, with all sorts
of third party packages and custom functions. But early this year, after about
a year of heavy Emacs use, I felt the pain of maintaining a working,
organized, and fast Emacs setup was just too much. After a certain threshold,
twiddling around editor configuration for hours seems to look awfully like
useless bike-shedding. And I did find myself sinking a couple hours at a time
.emacs.d. “Time for a fucking change,” I thought.
So, I took an axe to my
.emacs. I made a very minimal configuration that
distilled my previous learnings into a simple collection of basic overrides.
The basics are all there, and the remaining annoyances require too big of an
investment of effort over a long time to be worth it for me.
A bonus of this minimal config is that
emacs is instantaneous, even without
the whole “run emacs as a daemon and connect to it” shenanigans.
(I must admit that lately I’ve dropped even this in favor of Sublime Text 3 + sublemacspro).
But anyway, here’s my minimal config (also here as this gist):
; Want a fast emacs startup? Copy this to ~/.emacs.minimal and: ; ; cp ~/.emacs ~/.emacs.bak ; echo "(load-file \"/absolute/path/to/.emacs.minimal\")" > ~/.emacs ; ; Switch it back if you don't like it. ; ;; cutoff for word wrap (setq-default fill-column 79) ;; F12 toggles auto-fill mode (global-set-key [f12] 'auto-fill-mode) ;; C-- keybinding for undo (removes the shift) (global-set-key [(control -)] 'undo) ;; turn on pending delete (when a region ;; is selected, typing replaces it) (delete-selection-mode t) ;; when on a tab, make the cursor the tab length (setq-default x-stretch-cursor t) ;; avoid garbage collection (default is only 400k) (setq-default gc-cons-threshold 4000000) ;; twiddle miscellaneous customization options (custom-set-variables '(sentence-end-double-space nil) '(truncate-partial-width-windows nil) '(line-number-mode t) '(column-number-mode t) '(query-user-mail-address nil) '(visible-bell t)) ;; prevent creation of backup files. I'd rather manually handle that. (setq make-backup-files nil) ;; set indentation to 2 (setq standard-indent 2) ;; set newline as required for every file's last line (setq require-final-newline nil) ;; freaking don't ask me to type out "yes" and "no" (defalias 'yes-or-no-p 'y-or-n-p) ;; Prevent the cursor from blinking (blink-cursor-mode 0) ;; Don't use messages that you don't read (setq initial-scratch-message "") (setq inhibit-startup-message t) ;; key binding for fill-region (global-set-key (kbd "C-c f") 'fill-region) ;; disable color crap that pukes up everywhere (setq-default global-font-lock-mode nil)