doomemacs/core/core.el
Henrik Lissner 50d6de0600 Clean up
2015-10-06 20:27:18 -04:00

131 lines
4.9 KiB
EmacsLisp

;;; core.el --- The heart of the beast
;;
;;; Naming conventions:
;;
;; narf-... A public variable/constant or function
;; narf--... An internal variable or function (non-interactive)
;; narf/... An autoloaded interactive function
;; narf:... An ex command
;; narf|... A hook
;; narf*... An advising function
;; ...! Macro
;;
;;;
(setq-default
ad-redefinition-action 'accept ; silence the advised function warnings
compilation-always-kill t
compilation-ask-about-save nil
compilation-scroll-output t
confirm-kill-emacs (lambda (prompt) (y-or-n-p ">> Gee, I dunno Brain... Are you sure?"))
echo-keystrokes 0.02 ; show me those keystrokes
ediff-diff-options "-w"
ediff-split-window-function 'split-window-horizontally ; side-by-side diffs
ediff-window-setup-function 'ediff-setup-windows-plain ; no extra frames
enable-recursive-minibuffers t ; minibufferception
history-length 1000
inhibit-startup-echo-area-message "hlissner" ; username shuts up emacs
inhibit-startup-screen t ; don't show emacs start screen
initial-major-mode 'text-mode ; initial scratch buffer mode
initial-scratch-message nil
major-mode 'text-mode
ring-bell-function 'ignore ; silence of the bells!
save-interprogram-paste-before-kill nil
sentence-end-double-space nil
;; http://ergoemacs.org/emacs/emacs_stop_cursor_enter_prompt.html
minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt)
;; remove annoying ellipsis when printing sexp in message buffer
eval-expression-print-length nil
eval-expression-print-level nil
;; Disable all backups (that's what git/dropbox are for)
bookmark-save-flag t
bookmark-default-file (! (concat narf-temp-dir "bookmarks"))
auto-save-default nil
auto-save-list-file-name (! (concat narf-temp-dir "autosave"))
;; In case I want to reactivate backup files
make-backup-files nil
create-lockfiles nil
backup-directory-alist `((".*" . ,(concat narf-temp-dir "backup/")))
;; Remember undo history
undo-tree-auto-save-history t
undo-tree-history-directory-alist `(("." . ,(concat narf-temp-dir "undo/"))))
;;; UTF-8 please
(setq locale-coding-system 'utf-8) ; pretty
(set-terminal-coding-system 'utf-8) ; pretty
(set-keyboard-coding-system 'utf-8) ; pretty
(set-selection-coding-system 'utf-8) ; please
(prefer-coding-system 'utf-8) ; with sugar on top
(fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no
;; Bootstrap ;;;;;;;;;;;;;;;;;;;;;;;;;;;
(unless (require 'autoloads nil t)
(load (concat narf-emacs-dir "scripts/generate-autoloads.el"))
(require 'autoloads))
(require 'core-vars)
(require 'core-defuns)
(require 'diminish)
(eval-when-compile
(require 'dash)
(require 'use-package)
(require 'defuns-use-package)
(setq use-package-verbose narf-debug-mode)
;; Make any folders needed
(dolist (file '("" "undo" "backup"))
(let ((path (concat narf-temp-dir file)))
(unless (file-exists-p path)
(make-directory path t)))))
;; Save history across sessions
(require 'savehist)
(setq savehist-file (concat narf-temp-dir "savehist")
savehist-additional-variables
'(kill-ring global-mark-ring search-ring regexp-search-ring extended-command-history))
(savehist-mode 1)
(require 'recentf)
(setq recentf-save-file (concat narf-temp-dir "recentf")
recentf-exclude '("/tmp/" "/ssh:" "\\.?ido\\.last$" "\\.revive$" "/TAGS$"
"emacs\\.d/private/cache/.+" "emacs\\.d/workgroups/.+$" "wg-default"
"/company-statistics-cache.el$")
recentf-max-menu-items 0
recentf-max-saved-items 250
recentf-auto-cleanup 600)
(recentf-mode 1)
(use-package saveplace
:defer t
:config (setq save-place-file (concat narf-temp-dir "saveplace"))
:init
;; Save cursor location across sessions. Only save for files that exist.
(add-hook! find-file
(if (file-exists-p (buffer-file-name))
(require 'saveplace)
(setq save-place t))))
(use-package help-fns+ ; Improved help commands
:commands (describe-buffer describe-command describe-file
describe-keymap describe-option describe-option-of-type))
(defun narf-init ()
(defadvice save-buffers-kill-emacs (around no-query-kill-emacs activate)
"Prevent annoying \"Active processes exist\" query when you quit Emacs."
(flet ((process-list ())) ad-do-it))
(defun display-startup-echo-area-message ()
(message ">>> Loaded in %s" (emacs-init-time)))
(require 'server)
(unless (server-running-p)
(server-start)))
(provide 'core)
;;; core.el ends here