Skip to content
Snippets Groups Projects
Commit e02f6478 authored by MoScriber's avatar MoScriber
Browse files

Merge branch 'master' of https://github.com/moscribe/emacs.d

parents 4dadb35b dafe7822
No related merge requests found
;;; early-init.el ---
;;
;; Author: Liu Miao
;;
;; This file is not part of GNU Emacs
(setq gc-cons-threshold most-positive-fixnum)
;; Before Emacs 27, the init file was responsible for initializing the package
;; manager by calling `package-initialize'. Emacs 27 changed the default
;; behavior: It now calls `package-initialize' before loading the init file.
;; Earlier Emacs versions do not load the early init file and do not initialize
;; the package manager before loading the init file, so this file is neither
;; needed nor loaded on those versions.
;; (setq package-enable-at-startup nil)
;; Prevent the glimpse of un-styled Emacs by disabling these UI elements early
(push '(menu-bar-lines . 0) default-frame-alist)
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(vertical-scroll-bars . 0) default-frame-alist)
......@@ -17,91 +17,39 @@
;; Use a hook so the messages doesn't get clobbered by other messages.
(add-hook 'emacs-startup-hook
(lambda ()
(message "Emacs ready in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done)))
(lambda ()
(message "Emacs ready in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done)))
;; add `lisp' to `load-path'.
(add-to-list 'load-path
(expand-file-name "lisp" user-emacs-directory))
;; load user configs.
(require 'configs)
(or (file-exists-p user/userconfig-file)
(copy-file (concat user-emacs-directory "lisp/templates/userconfig.template")
user/userconfig-file)
user/userconfig-file)
)
(load user/userconfig-file)
;;
(setq auto-save-list-file-prefix user/auto-save-list-prefix)
;; load `custom-file'
(setq custom-file user/custom-file)
(when (file-exists-p custom-file)
(load custom-file))
(require 'cl-lib)
(require 'cl-lib)
;; Language and coding
(set-language-environment "utf-8")
(set-keyboard-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(if (fboundp 'with-eval-after-load)
(defalias 'after-load 'with-eval-after-load)
(defmacro after-load (feature &rest body)
"After FEATURE is loaded, evaluate BODY."
(declare (indent defun))
`(eval-after-load ,feature
'(progn ,@body))))
(defun add-to-hook (fun hooks)
"Add FUN to HOOKS."
(dolist (hook hooks)
(add-hook hook fun)))
(defun add-all-to-list (usr-list vars)
"USR-LIST get th VARS in."
(dolist (list vars)
(add-to-list usr-list list))
)
;;; Basic
(setq-default make-backup-files nil ;; Don't make a backup file which end with "~"
;; visible-bell t ;; Flash the frame to represent a bell
ring-bell-function 'ignore
scroll-step 1 ;; smooth scroll
auto-image-file-mode t
initial-scratch-message nil
inhibit-splash-screen t
column-number-mode nil
line-number-mode nil
initial-major-mode 'text-mode
frame-title-format "%b"
mode-line-format user/mode-line-format)
;; Set font
(set-frame-font "Source Code Pro 11" t t)
;;; Interface
(when (fboundp 'tool-bar-mode)
(tool-bar-mode -1))
(when (fboundp 'set-scroll-bar-mode)
(set-scroll-bar-mode nil))
(when (fboundp 'menu-bar-mode)
(menu-bar-mode -1))
(show-paren-mode 1)
(delete-selection-mode 1)
(electric-pair-mode 1)
(size-indication-mode t)
;; use y-n to replace yes-no
(fset 'yes-or-no-p 'y-or-n-p)
(add-hook 'prog-mode-hook (lambda () (setq truncate-lines t)))
;;; Packages
......@@ -127,56 +75,14 @@
;; Load Emacs packages and initialize them.
(package-initialize)
;; Install use-package from melpa
(or (package-installed-p 'use-package)
(progn
(package-refresh-contents)
(package-install 'use-package))
)
;;; Built-In packages
(use-package recentf
:defer 1
:commands (recentf-save-list)
:init
(progn
(add-hook 'find-file-hook (lambda () (unless recentf-mode
(recentf-mode)
(recentf-track-opened-file))))
(setq recentf-save-file user/recentf-save-file
recentf-max-saved-items 1000
recentf-auto-cleanup 'never
recentf-auto-save-timer (run-with-idle-timer 600 t
'recentf-save-list)))
)
(use-package display-line-numbers
:hook
(prog-mode . display-line-numbers-mode)
)
;;
(use-package saveplace
:hook (after-init . save-place-mode)
:init
(setq save-place-file user/save-place-file)
)
(use-package subword
:hook (after-init . global-subword-mode)
:diminish subword-mode)
(use-package winner-mode
:ensure nil
:hook (after-init . winner-mode))
(use-package autorevert
:ensure nil
:hook (after-init . global-auto-revert-mode))
(use-package imenu
:defer t
:bind (("C-c j i" . 'imenu))
)
(require 'editor)
;;; Navigation
(use-package ivy
......
......@@ -15,6 +15,9 @@
(defvar user/save-place-file
(expand-file-name "cache/places" user-emacs-directory))
(defvar user/backup-directory-alist
(expand-file-name "cache/backup/" user-emacs-directory))
(defvar user/projectile-known-projects-file
(expand-file-name "cache/projectile-bookmarks.eld" user-emacs-directory))
......
;;; editor.el --- configs for Emacs settings
;;
;;; Commentary:
;;
;;; Code:
;; Resolve symlinks when opening files
(setq find-file-visit-truename t
vc-follow-symlinks t)
(setq find-file-suppress-same-file-warnings t)
;; Create missing directory when we open a file that doesn't exist under
;; a directory tree tha may not exist.
(add-hook 'find-file-not-found-hooks
(lambda ()
(unless (file-remote-p buffer-file-name)
(let ((parent-directory (file-name-directory buffer-file-name)))
(and (not (file-directory-p parent-directory))
(y-or-n-p (format "Directory `%s' does not exist! Create it? "
parent-directory))
(progn (make-directory parent-directory)
t))))))
;; Don't generate backups or lockfiles.
(setq create-lockfiles nil
make-backup-files nil
ring-bell-function 'ignore
;; build-in packages
version-control t
backup-by-copying t
delete-old-versions t
kept-old-versions 5
kept-new-versions 5
backup-directory-alist user/backup-directory-alist
tramp-backup-directory-alist backup-directory-alist)
(setq-default scroll-step 1) ;; smooth scroll
(setq-default auto-image-file-mode t)
(setq auto-save-list-file-prefix user/auto-save-list-prefix)
(setq-default initial-scratch-message nil
inhibit-splash-screen t
initial-major-mode 'text-mode
frame-title-format "%b")
;;; Formatting
(setq-default indent-tabs-mode nil
tab-width 4
tab-always-indent nil)
(setq-default fill-column 80)
(setq-default word-wrap t)
(setq-default truncate-lines t)
;; Default to soft line-wrapping in text modes.
(add-hook 'text-mode-hook #'visual-line-mode)
(unless (assq 'menu-bar-lines default-frame-alist)
(add-to-list 'default-frame-alist '(menu-bar-lines . 0))
(add-to-list 'default-frame-alist '(tool-bar-lines . 0))
(add-to-list 'default-frame-alist '(vertical-scroll-bars)))
(setq menu-bar-mode nil
tool-bar-mode nil
scroll-bar-mode nil)
(delete-selection-mode 1)
(electric-pair-mode 1)
(size-indication-mode t)
(add-hook 'emacs-startup-hook #'window-divider-mode)
;; Don't display floating tooltips;
(when (bound-and-true-p tooltip-mode)
(tooltip-mode -1))
;;; Build-in packages
(use-package paren
:hook (after-init . show-paren-mode)
:config
(setq show-paren-delay 0.1
show-paren-highlight-openparen t
show-paren-when-point-inside-paren t
show-paren-when-point-in-periphery t))
(use-package recentf
:defer 1
:commands (recentf-save-list)
:init
(progn
(add-hook 'find-file-hook (lambda () (unless recentf-mode
(recentf-mode)
(recentf-track-opened-file))))
(setq recentf-save-file user/recentf-save-file
recentf-max-saved-items 1000
recentf-auto-cleanup 'never
recentf-auto-save-timer (run-with-idle-timer 600 t
'recentf-save-list)))
)
(use-package display-line-numbers
:hook
(prog-mode . display-line-numbers-mode)
)
;;
(use-package saveplace
:hook (after-init . save-place-mode)
:init
(setq save-place-file user/save-place-file)
)
(use-package subword
:hook (after-init . global-subword-mode)
:diminish subword-mode)
(use-package winner-mode
:ensure nil
:hook (after-init . winner-mode))
(use-package autorevert
:ensure nil
:hook (after-init . global-auto-revert-mode))
(use-package imenu
:defer t
:bind (("C-c j i" . 'imenu))
)
;;; Minibuffers
;; Allow for minibuffer-ception.
(setq enable-recursive-minibuffers t)
(setq echo-keystrokes 0.02)
(setq resize-mini-windows 'grow-only
max-mini-window-height 0.15)
(fset #'yes-or-no-p #'y-or-n-p)
;; Try really hard to keep the cursor from getting stuce in the read-only prompt
;; portion of the minibuffer.
(setq minibuffer-prompt-properties
'(read-only t intangible t cursor-intangible t face minibuffer-prompt))
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
(provide 'editor)
;;; editor.el ends here
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment