2014-08-07 18:35:22 -04:00
|
|
|
;; Setup theme
|
|
|
|
(add-to-list 'custom-theme-load-path my/themes-dir)
|
|
|
|
(load-theme my/theme t)
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
;; Emacs under-the-hood
|
|
|
|
(prefer-coding-system 'utf-8)
|
2014-08-07 18:35:22 -04:00
|
|
|
(setq redisplay-dont-pause t)
|
|
|
|
(setq-default gc-cons-threshold 50000000) ; avoid garbage collection (default is 400k)
|
|
|
|
(setq make-backup-files nil ; Don't want any backup files
|
|
|
|
auto-save-list-file-name nil ; Don't want any .saves files
|
|
|
|
auto-save-default nil) ; Don't want any auto saving
|
|
|
|
(fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no
|
|
|
|
(setq inhibit-startup-screen t) ; don't show EMACs start screen
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
;; If I ever enable bkacups/autosaves, then change where they go
|
2014-08-07 18:35:22 -04:00
|
|
|
(setq backup-directory-alist `((".*" . ,my/tmp-dir)))
|
|
|
|
(setq auto-save-file-name-transforms `((".*" ,my/tmp-dir t)))
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
;; Always revert buffers if the files were changed
|
|
|
|
(global-auto-revert-mode 1)
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;; window layout undo/redo, keymaps in core-keymaps.el
|
2014-07-15 02:21:56 -04:00
|
|
|
(when (fboundp 'winner-mode) (winner-mode 1))
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defconst is-mac
|
|
|
|
(eq system-type 'darwin)
|
|
|
|
"Is this running on OS X?")
|
|
|
|
(defconst is-linux
|
|
|
|
(eq system-type 'gnu/linux)
|
|
|
|
"Is this running on Linux?")
|
2014-07-20 09:01:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;;;; Macros ;;;;;;;;;;;;;;;;;;;;;;;;
|
2014-07-20 09:01:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;; Vimmish keymapping shortcuts
|
|
|
|
(defmacro nmap (map &rest body)
|
|
|
|
`(evil-define-key 'normal ,map ,@body))
|
|
|
|
(defmacro vmap (map &rest body)
|
|
|
|
`(evil-define-key 'visual ,map ,@body))
|
|
|
|
(defmacro imap (map &rest body)
|
|
|
|
`(evil-define-key 'insert ,map ,@body))
|
|
|
|
(defmacro emap (map &rest body)
|
|
|
|
`(evil-define-key 'emacs ,map ,@body))
|
2014-07-20 09:01:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;; insert-mode key-chord mapping
|
|
|
|
(defmacro ichmap (key command)
|
|
|
|
`(key-chord-define evil-insert-state-map ,key ,command))
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Advice ;;;;;;;;;;;;;;;;;;;;;;;;
|
2014-07-20 09:01:56 -04:00
|
|
|
|
|
|
|
;; Make next/previous-buffer skip special buffers
|
|
|
|
(defadvice next-buffer (after avoid-messages-buffer-in-next-buffer)
|
|
|
|
"Advice around `next-buffer' to avoid going into the *Messages* buffer."
|
|
|
|
(when (string= "*Messages*" (buffer-name))
|
|
|
|
(next-buffer)))
|
|
|
|
(defadvice previous-buffer (after avoid-messages-buffer-in-previous-buffer)
|
|
|
|
"Advice around `previous-buffer' to avoid going into the *Messages* buffer."
|
|
|
|
(when (string= "*Messages*" (buffer-name))
|
|
|
|
(previous-buffer)))
|
|
|
|
|
2014-07-17 02:59:23 -04:00
|
|
|
;; Prevent prompts when trying to close window. If I'm closing the window,
|
|
|
|
;; I likely want it to close!
|
2014-08-07 18:35:22 -04:00
|
|
|
(when window-system
|
|
|
|
(defadvice save-buffers-kill-emacs (around no-y-or-n activate)
|
|
|
|
(flet ((yes-or-no-p (&rest args) t)
|
|
|
|
(y-or-n-p (&rest args) t))
|
|
|
|
ad-do-it)))
|
|
|
|
|
|
|
|
;; Prevent GUI dialog boxes, they make emacs hang
|
|
|
|
(defadvice yes-or-no-p (around prevent-dialog activate)
|
|
|
|
(let ((use-dialog-box nil)) ad-do-it))
|
|
|
|
(defadvice y-or-n-p (around prevent-dialog-yorn activate)
|
|
|
|
(let ((use-dialog-box nil)) ad-do-it))
|
2014-07-16 03:28:06 -04:00
|
|
|
|
|
|
|
|
2014-07-15 02:21:56 -04:00
|
|
|
;;;; My personal minor mode ;;;;;;;;
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defvar my/mode-map (make-sparse-keymap))
|
|
|
|
(define-minor-mode my/mode :keymap my/mode-map :global t)
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
|
|
|
|
;;;; Commands ;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
;; File navigation defuns
|
2014-08-07 18:35:22 -04:00
|
|
|
(defun my/initfiles ()
|
2014-07-15 02:21:56 -04:00
|
|
|
(interactive)
|
2014-08-07 18:35:22 -04:00
|
|
|
(ido-find-file-in-dir my/dir))
|
2014-07-15 02:21:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defun my/open-scratch ()
|
2014-07-17 02:59:23 -04:00
|
|
|
(interactive)
|
|
|
|
(switch-to-buffer (get-buffer-create "*scratch*"))
|
|
|
|
(text-mode))
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defun my/expand-space ()
|
2014-07-22 23:24:02 -04:00
|
|
|
(interactive)
|
|
|
|
(save-excursion (insert " ")))
|
2014-08-07 18:35:22 -04:00
|
|
|
|
|
|
|
(defun my/expand-backspace ()
|
2014-07-22 23:24:02 -04:00
|
|
|
(interactive)
|
|
|
|
(save-excursion (delete-char 1))
|
|
|
|
(delete-backward-char 1))
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defun my/enable-hard-wrap()
|
2014-07-15 02:21:56 -04:00
|
|
|
(interactive)
|
2014-08-07 18:35:22 -04:00
|
|
|
(auto-fill-mode 1))
|
2014-07-15 02:21:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(defun my/byte-recompile ()
|
|
|
|
(interactive)
|
|
|
|
(byte-recompile-file (expand-file-name "init.el" my/dir))
|
|
|
|
(byte-recompile-directory my/init-dir 0)
|
|
|
|
(byte-recompile-directory my/elisp-dir 0))
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;;;; Load the rest ;;;;;;;;;;;;;;;;;;
|
2014-07-15 02:21:56 -04:00
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
(require 'core-packages)
|
|
|
|
(require 'core-ui)
|
|
|
|
(require 'core-editor)
|
|
|
|
(use-package core-osx :if is-mac)
|
|
|
|
(add-hook 'after-init-hook (lambda() (require 'core-keymaps)))
|
2014-07-15 02:21:56 -04:00
|
|
|
|
|
|
|
;;
|
|
|
|
(provide 'core)
|