Created
August 7, 2018 19:36
-
-
Save hidsh/ca02ebd047fc2c6af41ada879f6460f1 to your computer and use it in GitHub Desktop.
.emacs in order to backup/restore init files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; -*- coding:utf-8; mode:emacs-lisp -*- | |
;;; | |
;;; ~/.emacs.d/dot.emacs | |
;;; | |
;;; $ ln -s ~/.emacs.d/dot.emacs ~/.emacs | |
;;; | |
;; | |
;; functionalities to backup/restore init files | |
;; | |
(defun backup-init-files-backup () | |
(let ((s "") | |
(bak "")) | |
(dolist (f backup-init-files-file-list) | |
(unless (file-exists-p f) | |
(setq s (concat s " " f)))) | |
(if (null (string= s "")) | |
(message "not exists:%s" s) | |
(dolist (f backup-init-files-file-list) | |
(setq bak (concat f backup-init-files-ext-bak)) | |
(copy-file f bak t) | |
(setq s (concat s " " f))) | |
(message "backed up:%s" s)))) | |
(defun backup-init-files-restore () | |
(interactive) | |
(let ((s "") | |
(bak "") | |
(old "")) | |
(dolist (f backup-init-files-file-list) | |
(setq bak (concat f backup-init-files-ext-bak)) | |
(unless (file-exists-p bak) | |
(setq s (concat s " " bak)))) | |
(if (null (string= s "")) | |
(message "not exists: %s" s) | |
(dolist (f backup-init-files-file-list) | |
(setq bak (concat f backup-init-files-ext-bak)) | |
(setq old (concat f backup-init-files-ext-old)) | |
(copy-file f old t t) | |
(copy-file bak f t) | |
(setq s (concat s " " f))) | |
(message "restored:%s" s)))) | |
(defvar backup-init-files-ext-bak ".last-load") | |
(defvar backup-init-files-ext-old ".err") | |
(defvar backup-init-files-file-list '("~/.emacs.d/init.el")) | |
;; | |
;; package setting | |
;; | |
(require 'package) | |
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")) | |
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) | |
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/")) | |
(setq package-user-dir "~/.emacs.d/packages") | |
(package-initialize) | |
(unless (require 'use-package nil t) | |
(defmacro use-package (&rest args))) | |
;; | |
;; load ~/.emacs.d/init.d | |
;; | |
(load "~/.emacs.d/init.el") | |
(backup-init-files-backup) ; backup init files when loaded normaly | |
;; Use `M-x backup-init-files-restore' to restore init files if error occurs while startup Emacs. | |
;; | |
;; customize setting | |
;; | |
(setq custom-file "~/.emacs.d/custom.el") ; write custom settings into external file instead of init.el | |
(load custom-file t) | |
;; | |
;; dot.emacs ends here | |
;; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment