blob: 80a60dae59e095f7273c1e460df5788e350af55c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
:;;; init.el -*- lexical-binding: t; coding: utf-8-unix -*-
;;
;; Author: Case Duckworth <acdw@acdw.net>
;; Created: Sometime during Covid-19, 2020
;; Keywords: configuration
;; URL: https://tildegit.org/acdw/emacs
;; Bankruptcy: 5b
;;
;; This file is NOT part of GNU Emacs.
;;
;;; License:
;;
;; Everyone is permitted to do whatever with this software, without
;; limitation. This software comes without any warranty whatsoever,
;; but with two pieces of advice:
;; - Don't hurt yourself.
;; - Make good choices.
;;
;;; Code:
;; Add `acdw.el'
(push (expand-file-name "lisp/"
user-emacs-directory)
load-path)
(require 'acdw)
;;; Good defaults
;; Lines
(acdw/set '((fill-column 80)))
(global-display-fill-column-indicator-mode +1)
(add-hook 'text-mode-hook #'turn-on-auto-fill)
(add-hook 'prog-mode-hook #'turn-on-auto-fill)
(global-so-long-mode +1)
;; Whitespace
(acdw/set `((whitespace-style
(empty indentation space-before-tab space-after-tab))
(indent-tabs-mode t)
(tab-width 8)))
(add-hook 'before-save-hook #'whitespace-cleanup)
;; Pairs
(add-hook 'prog-mode-hook #'electric-pair-local-mode)
(acdw/set '((show-paren-delay 0)
(show-paren-style mixed)
(show-paren-when-point-inside-paren t)
(show-paren-when-point-in-periphery t)))
(show-paren-mode +1)
;; Killing & Yanking
(delete-selection-mode +1)
(acdw/set `((save-interprogram-paste-before-kill t)
(yank-pop-change-selection t)
(x-select-enable-clipboard t)
(x-select-enable-primary t)
(mouse-drag-copy-region t)
(kill-do-not-save-duplicates t)))
;; Encoding
(set-charset-priority 'unicode)
(set-language-environment "UTF-8")
(prefer-coding-system 'utf-8-unix)
(set-default-coding-systems 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
(set-selection-coding-system 'utf-8-unix)
(acdw/set '((locale-coding-system utf-8-unix)
(coding-system-for-read utf-8-unix)
(coding-system-for-write utf-8-unix)
(buffer-file-coding-system utf-8-unix)
(org-export-coding-system utf-8-unix)
(org-html-coding-system utf-8-unix)
(default-process-coding-system (utf-8-unix . utf-8-unix))
(x-select-request-type (UTF8_STRING COMPOUND_TEXT TEXT STRING))))
;; Backups
(acdw/set `((backup-by-copying t)
(delete-old-versions -1)
(version-control t)
(vc-make-backup-files t)
(backup-directory-alist ((".*" . ,(acdw/in-dir "backup/" t))))))
;; Autosaves
(acdw/set `((auto-save-file-name-transforms
((".*" ,(acdw/in-dir "auto-save/" t) t)))
(auto-save-list-file-prefix
,(acdw/in-dir "auto-save-list/.saves-" t))))
(auto-save-visited-mode +1)
;; Cursor
(acdw/set '((cursor-type bar)
(cursor-in-non-selected-windows 'box)))
(defun hook--overwrite-mode-change-cursor ()
(setq cursor-type (if overwrite-mode t 'bar)))
(add-hook 'overwrite-mode-hook #'hook--overwrite-mode-change-cursor)
;; Bindings
(acdw/bind "C-h" 'ehelp-command :after ("ehelp" nil nil 'keymap))
|