-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathпро-историю.el
131 lines (105 loc) · 3.73 KB
/
про-историю.el
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
;;; про-историю.el --- История -*- lexical-binding: t -*-
;;; Commentary:
;; Функции для работы с историей, хранением и
;; восстановлением состояний
;;; Code:
;;;; Сохранение истории
(use-package no-littering
:ensure t
:custom ((make-backup-files t)
(delete-by-moving-to-trash t)
(backup-by-copying t)
(kept-new-versions 25)
(history-delete-duplicates t)
(history-length 300)
(savehist-autosave-interval 300)
(kept-old-versions 25)
(delete-old-versions t)
(create-lockfiles nil)
(vc-make-backup-files t)
(version-control t))
:functions (no-littering-expand-var-file-name no-littering-expand-etc-file-name no-littering-theme-backups)
:config
(savehist-mode t)
(setq
auto-save-file-name-transforms
`((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
(setq custom-file (no-littering-expand-etc-file-name "custom.el"))
(no-littering-theme-backups))
;; Сохранять действия в ~~/.emacs.d/history~
;;;; Текстовая Машина Времени
;;;;; Дерево версий текста
(use-package undo-tree
:ensure t
:diminish " ⸙"
:functions (global-undo-tree-mode)
:custom
(undo-tree-auto-save-history t)
(undo-tree-history-directory-alist `((".*" . ,(expand-file-name "~/.emacs.d/undo/"))))
(undo-tree-visualizer-timestamps t)
(undo-tree-visualizer-diff nil)
:bind (("C-M--" . undo-tree-visualize)
("C-M-_" . undo-tree-visualize)
("M-u" . undo-tree-visualize))
:config
(defun очистить-историю-отмен ()
"Очищает историю отмен."
(interactive)
(setq undo-tree-stack nil)
(setq undo-tree-redo-stack nil)
(setq buffer-undo-tree nil))
:init
(global-undo-tree-mode 1))
;;;;; Вернуться к последней правке
(use-package goto-last-change
:defer t
:ensure t
:bind (("C-c C-," . goto-last-point)))
;;;;; Вернуться к предыдущей позиции курсора
(use-package goto-last-point
:defer t
:ensure t
:functions (goto-last-point-mode)
:bind (("C-c ," . goto-last-point))
:config
(goto-last-point-mode t))
;; Сохранение положения
(use-package eyebrowse
:defer t
:ensure t
:functions (eyebrowse-mode)
:config (eyebrowse-mode))
;;;; Помнить места
(use-package saveplace
:ensure t
:after (no-littering)
:init
(save-place-mode t))
;;;; Помнить недавние файлы
(use-package recentf
:after (no-littering)
:custom ((recentf-max-saved-items 512) ;; всего
(recentf-max-menu-items 100) ;; меню
;; ...исключая некоторые:
(recentf-exclude '("/\\.git/.*\\'" ; Git contents
"/\\.emacs\\.d/elpa" ; ELPA
"-autoloads\\.el\\'"
no-littering-var-directory
no-littering-etc-directory
"\\.elc\\'"
"/TAGS\\'")))
:config
(recentf-mode t))
;;;; История копирования
(setq-default kill-ring-max 300
save-interprogram-paste-before-kill t)
;;;; Сохранение сессии
;; (desktop-save-mode t)
;; Но не загружаем его
;;(ignore-errors (load custom-file))
;;;; Синхронизация буфера обмена и kill ring
(setq-default save-interprogram-paste-before-kill t)
(setq-default yank-pop-change-selection t)
(setq-default x-select-enable-primary t)
(provide 'про-историю)
;;; про-историю.el ends here