20 |
20 |
21 (setq initial-scratch-message nil) |
21 (setq initial-scratch-message nil) |
22 (setq initial-major-mode (quote fundamental-mode)) |
22 (setq initial-major-mode (quote fundamental-mode)) |
23 |
23 |
24 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
24 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
25 (message "helper buffers") |
|
26 |
|
27 (define-key global-map "\C-v" nil) |
|
28 (define-key global-map "\C-vt" (lambda nil (interactive) (switch-to-buffer "*scratch*"))) |
|
29 |
|
30 (defvar my-work-file (expand-file-name "~/work.txt")) |
|
31 (setq initial-buffer-choice my-work-file) |
|
32 (define-key global-map "\C-vw" (lambda nil (interactive) (find-file my-work-file))) |
|
33 |
|
34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
35 (message "save-place") |
|
36 |
|
37 ;; `save-place-file' in ".emacs". |
|
38 (save-place-mode 1) ; since v25.1 |
|
39 |
|
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
41 (message "recentf") |
|
42 |
|
43 (eval-and-compile |
|
44 (require 'recentf)) |
|
45 |
|
46 ;; (recentf-load-list) |
|
47 (setq recentf-save-file (concat user-emacs-directory ".recentf")) |
|
48 |
|
49 ;; Prevent TRAMP to login on remote host when loading. Its take time and ask passwords! |
|
50 (setq recentf-keep '(file-remote-p file-readable-p)) |
|
51 (setq recentf-exclude ; Use ``M-x recentf-cleanup`` to update recentf-list. |
|
52 '("/devel/[^/]*-\\(orig\\|tmp\\|xxx\\)" |
|
53 "/devel/my-\\(merge\\|pull\\)/" |
|
54 "/.cache/" |
|
55 "\\.png\\'")) |
|
56 |
|
57 (setq recentf-max-saved-items 10000) |
|
58 (setq recentf-max-menu-items 40) |
|
59 (setq recentf-show-file-shortcuts-flag nil) |
|
60 |
|
61 ;; Need to be defined before loading "recentf" because default value is |
|
62 ;; "mode", meaning cleanup when turning the mode on. |
|
63 (setq recentf-auto-cleanup 600) |
|
64 ;; Disable population of `file-name-history', it causes calls to |
|
65 ;; abbreviate-file-name => file-name-case-insensitive-p => tramp-autoload-file-name-handler |
|
66 ;; taking 41% of startup time. |
|
67 ;; `ido-switch-buffer' doesn't depends on `file-name-history', nothing to lose. |
|
68 (setq recentf-initialize-file-name-history nil) |
|
69 |
|
70 (recentf-mode 1) |
|
71 |
|
72 (global-set-key (kbd "\e\eq") 'recentf-open-files) |
|
73 (global-set-key [?\s-q] 'recentf-open-files) |
|
74 |
|
75 ;; (setq recentf-menu-filter 'recentf-arrange-by-dir) ; Too slow with dir widgets. |
|
76 ;; Don't sort ``recentf-list`` so ``recentf-open-files`` show files in historical order! |
|
77 (setq recentf-menu-filter nil) |
|
78 |
|
79 (defun my-recentf-clean-project (dir) |
|
80 "Remove from recentf all files that belong to DIR directory." |
|
81 (interactive (list (read-directory-name "Exclude all paths"))) |
|
82 (let ( recentf-exclude ) |
|
83 (setq recentf-exclude (list (concat "^" (regexp-quote (expand-file-name dir))))) |
|
84 (recentf-cleanup) )) |
|
85 |
|
86 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
87 (message "revert buffer, auto-revert") |
|
88 |
|
89 (cl-eval-when (compile) (require 'autorevert)) |
|
90 |
|
91 (global-set-key [f5] 'revert-buffer) |
|
92 (setq revert-without-query '(".*")) |
|
93 (setq auto-revert-interval 2) |
|
94 |
|
95 ;; (setq global-auto-revert-mode 1) |
|
96 |
|
97 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
98 (message "lockfile") |
|
99 |
|
100 ;; (info "(elisp) File Locks") |
|
101 |
|
102 ;; Disable stupid file locking. It breaks editing WSL files from Cygwin Emacs. |
|
103 ;; https://emacs.stackexchange.com/questions/61962/what-is-interlocking-about |
|
104 ;; https://cygwin.com/pipermail/cygwin/2020-November/246887.html |
|
105 (setq create-lockfiles nil) |
|
106 |
|
107 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
108 (message "backuping") |
25 (message "backuping") |
109 |
26 |
|
27 ;; Keep it above modes saving state into files or you'll see files like ".recentf~" in "~/.emacs.d". |
110 (setq |
28 (setq |
111 make-backup-files t |
29 make-backup-files t |
112 ;; In other case (by renaming) you loose original file creation date. |
30 ;; In other case (by renaming) you loose original file creation date. |
113 backup-by-copying t |
31 backup-by-copying t |
114 backup-directory-alist '(("." . "~/.emacs.d/.backup")) ; don't litter my fs tree |
32 backup-directory-alist '(("." . "~/.emacs.d/.backup")) ; don't litter my fs tree |
116 kept-old-versions 1 ; store first original version |
34 kept-old-versions 1 ; store first original version |
117 kept-new-versions 3 ; store last 3 version |
35 kept-new-versions 3 ; store last 3 version |
118 version-control t) ; use versioned backups |
36 version-control t) ; use versioned backups |
119 |
37 |
120 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
38 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
39 (message "lockfile") |
|
40 |
|
41 ;; (info "(elisp) File Locks") |
|
42 |
|
43 ;; Disable stupid file locking. It breaks editing WSL files from Cygwin Emacs. |
|
44 ;; https://emacs.stackexchange.com/questions/61962/what-is-interlocking-about |
|
45 ;; https://cygwin.com/pipermail/cygwin/2020-November/246887.html |
|
46 (setq create-lockfiles nil) |
|
47 |
|
48 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
121 (message "auto save") |
49 (message "auto save") |
122 |
50 |
123 ;; Disable auto saving, files "#name#" might trigger false rebuild if there is |
51 ;; Disable auto saving, files "#name#" might trigger false rebuild if there is |
124 ;; some file watcher. Also those files looks like garbage in other tools/IDE. |
52 ;; some file watcher. Also those files looks like garbage in other tools/IDE. |
125 (setq auto-save-default nil) |
53 (setq auto-save-default nil) |
126 ;; If nil autosave to a different file than the original. |
54 ;; If nil autosave to a different file than the original. |
127 (setq auto-save-visited-file-name nil) |
55 (setq auto-save-visited-file-name nil) |
128 (setq auto-save-interval 300) |
56 (setq auto-save-interval 300) |
129 ;; Note: if you kill unsaved file auto save file not deleted. |
57 ;; Note: if you kill unsaved file auto save file not deleted. |
130 (setq delete-auto-save-files t) |
58 (setq delete-auto-save-files t) |
|
59 |
|
60 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
61 (message "helper buffers") |
|
62 |
|
63 (define-key global-map "\C-v" nil) |
|
64 (define-key global-map "\C-vt" (lambda nil (interactive) (switch-to-buffer "*scratch*"))) |
|
65 |
|
66 (defvar my-work-file (expand-file-name "~/work.txt")) |
|
67 (setq initial-buffer-choice my-work-file) |
|
68 (define-key global-map "\C-vw" (lambda nil (interactive) (find-file my-work-file))) |
|
69 |
|
70 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
71 (message "save-place") |
|
72 |
|
73 ;; `save-place-file' in ".emacs". |
|
74 (save-place-mode 1) ; since v25.1 |
|
75 |
|
76 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
77 (message "recentf") |
|
78 |
|
79 (eval-and-compile |
|
80 (require 'recentf)) |
|
81 |
|
82 ;; (recentf-load-list) |
|
83 (setq recentf-save-file (concat user-emacs-directory ".recentf")) |
|
84 |
|
85 ;; Prevent TRAMP to login on remote host when loading. Its take time and ask passwords! |
|
86 (setq recentf-keep '(file-remote-p file-readable-p)) |
|
87 (setq recentf-exclude ; Use ``M-x recentf-cleanup`` to update recentf-list. |
|
88 '("/devel/[^/]*-\\(orig\\|tmp\\|xxx\\)" |
|
89 "/devel/my-\\(merge\\|pull\\)/" |
|
90 "/.cache/" |
|
91 "\\.png\\'")) |
|
92 |
|
93 (setq recentf-max-saved-items 10000) |
|
94 (setq recentf-max-menu-items 40) |
|
95 (setq recentf-show-file-shortcuts-flag nil) |
|
96 |
|
97 ;; Need to be defined before loading "recentf" because default value is |
|
98 ;; "mode", meaning cleanup when turning the mode on. |
|
99 (setq recentf-auto-cleanup 600) |
|
100 ;; Disable population of `file-name-history', it causes calls to |
|
101 ;; abbreviate-file-name => file-name-case-insensitive-p => tramp-autoload-file-name-handler |
|
102 ;; taking 41% of startup time. |
|
103 ;; `ido-switch-buffer' doesn't depends on `file-name-history', nothing to lose. |
|
104 (setq recentf-initialize-file-name-history nil) |
|
105 |
|
106 (recentf-mode 1) |
|
107 |
|
108 (global-set-key (kbd "\e\eq") 'recentf-open-files) |
|
109 (global-set-key [?\s-q] 'recentf-open-files) |
|
110 |
|
111 ;; (setq recentf-menu-filter 'recentf-arrange-by-dir) ; Too slow with dir widgets. |
|
112 ;; Don't sort ``recentf-list`` so ``recentf-open-files`` show files in historical order! |
|
113 (setq recentf-menu-filter nil) |
|
114 |
|
115 (defun my-recentf-clean-project (dir) |
|
116 "Remove from recentf all files that belong to DIR directory." |
|
117 (interactive (list (read-directory-name "Exclude all paths"))) |
|
118 (let ( recentf-exclude ) |
|
119 (setq recentf-exclude (list (concat "^" (regexp-quote (expand-file-name dir))))) |
|
120 (recentf-cleanup) )) |
|
121 |
|
122 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
123 (message "revert buffer, auto-revert") |
|
124 |
|
125 (cl-eval-when (compile) (require 'autorevert)) |
|
126 |
|
127 (global-set-key [f5] 'revert-buffer) |
|
128 (setq revert-without-query '(".*")) |
|
129 (setq auto-revert-interval 2) |
|
130 |
|
131 ;; (setq global-auto-revert-mode 1) |
131 |
132 |
132 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
133 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
133 (message "debugging") |
134 (message "debugging") |
134 |
135 |
135 ;; Shut off message buffer by setting nil. |
136 ;; Shut off message buffer by setting nil. |