.emacs-my
changeset 1694 7145e9a4cf34
parent 1693 b6c42e0c1cb9
child 1695 ffde995a5923
equal deleted inserted replaced
1693:b6c42e0c1cb9 1694:7145e9a4cf34
    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.