diff options
-rw-r--r-- | init.el | 150 | ||||
-rw-r--r-- | lisp/init-appearance.el | 33 | ||||
-rw-r--r-- | lisp/init-evil-mode.el | 15 | ||||
-rw-r--r-- | lisp/init-go-mode.el | 7 | ||||
-rw-r--r-- | lisp/init-ido.el | 31 | ||||
-rw-r--r-- | lisp/init-mac.el | 32 | ||||
-rw-r--r-- | lisp/init-package.el | 17 | ||||
-rw-r--r-- | lisp/init-sane-defaults.el | 16 | ||||
-rw-r--r-- | lisp/init-server.el | 6 | ||||
-rw-r--r-- | lisp/init-yaml-mode.el | 7 |
10 files changed, 177 insertions, 137 deletions
@@ -1,137 +1,13 @@ -;; disable splash -(setq inhibit-startup-message t) -(setq inhibit-startup-echo-area-message t) - -;; hide toolbar -(tool-bar-mode -1) - -;; hide scrollbar -(scroll-bar-mode -1) - -;; configure melpa repo -(require 'package) -(add-to-list 'package-archives - '("melpa" . "http://melpa.milkbox.net/packages/") t) -(package-initialize) - -;; install packages -(defun require-package (package &optional min-version no-refresh) - (if (package-installed-p package min-version) - t - (if (or (assoc package package-archive-contents) no-refresh) - (package-install package) - (progn - (package-refresh-contents) - (require-package package min-version t))))) -(require-package 'evil) -(require-package 'key-chord) -(require-package 'solarized-theme) -(require-package 'go-mode) -(require-package 'yaml-mode) -(require-package 'flx-ido) -(require-package 'exec-path-from-shell) -(require-package 'ido-vertical-mode) -(require-package 'find-file-in-repository) - -;; load evil mode -(require 'evil) -(evil-mode 1) - -;; load key-chord -(require 'key-chord) -(setq key-chord-two-keys-delay 0.5) -(key-chord-define evil-insert-state-map "jj" 'evil-normal-state) -(key-chord-mode 1) - -;; load ido -(require 'ido) -(ido-mode t) -(setq ido-enable-prefix nil - ido-enable-flex-matching t - ido-case-fold nil - ido-auto-merge-work-directories-length -1 - ido-create-new-buffer 'always - ido-use-filename-at-point nil - ido-max-prospects 10 - ido-everywhere t) - -;; load flx-ido -(require 'flx-ido) -(flx-ido-mode 1) -;; disable ido faces to see flx highlights. -(setq ido-use-faces nil) - -;; vertical mode for ido -(require 'ido-vertical-mode) -(ido-vertical-mode) - -;; load go-mode -(require 'go-mode-load) - -;; set theme -(load-theme 'solarized-dark t) - -;; mac -(when (eq system-type 'darwin) - ;; set font - (set-face-attribute 'default nil :family "Source Code Pro") - (set-face-attribute 'default nil :height 140) - - ;; configure modifiers - (setq mac-option-modifier 'super) - (setq mac-command-modifier 'meta) - (setq ns-function-modifier 'hyper) - - ;; Norwegian mac-keyboard - (define-key key-translation-map (kbd "s-8") (kbd "[")) - (define-key key-translation-map (kbd "s-(") (kbd "{")) - (define-key key-translation-map (kbd "s-9") (kbd "]")) - (define-key key-translation-map (kbd "s-)") (kbd "}")) - (define-key key-translation-map (kbd "s-7") (kbd "|")) - (define-key key-translation-map (kbd "s-/") (kbd "\\")) - (define-key key-translation-map (kbd "M-s-7") (kbd "M-|"))) - - ;; don't open files from the workspace in a new frame - (setq ns-pop-up-frames nil) - - ;; use shell PATH - (exec-path-from-shell-initialize) - -;; use soft tabs and 4 space indent -(setq-default - tab-width 4 - tab-stop-list (number-sequence 4 200 4) - indent-tabs-mode nil) - -;; start server -(server-start) - -;; display line numbers -(global-linum-mode 1) -(setq linum-format " %d ") - -;; highlight current line -(global-hl-line-mode) - -;; bind return to newline-and-indent -(global-set-key (kbd "RET") 'newline-and-indent) - -;; make prompts accept y or n -(defalias 'yes-or-no-p 'y-or-n-p) - -;; no confirmation for non-existent files or buffers -(setq confirm-nonexistent-file-or-buffer nil) - -;; highlight matching parentheses -(show-paren-mode 1) - -;; highlight lines exceeding 80 columns -(require 'whitespace) -(setq whitespace-style '(face empty tabs lines-tail trailing)) -(global-whitespace-mode t) - -;; disable word wrapping -(setq-default truncate-lines 1) - -;; find file in project -(global-set-key (kbd "C-x f") 'find-file-in-repository) +;; add ~/.emacs.d/lisp to load path +(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) + +;; load files +(require 'init-package) +(require 'init-appearance) +(require 'init-evil-mode) +(require 'init-sane-defaults) +(require 'init-mac) +(require 'init-ido) +(require 'init-server) +(require 'init-go-mode) +(require 'init-yaml-mode) diff --git a/lisp/init-appearance.el b/lisp/init-appearance.el new file mode 100644 index 0000000..3c14a4d --- /dev/null +++ b/lisp/init-appearance.el @@ -0,0 +1,33 @@ +;; disable splash +(setq inhibit-startup-message t) +(setq inhibit-startup-echo-area-message t) + +;; hide toolbar +(tool-bar-mode -1) + +;; hide scrollbar +(scroll-bar-mode -1) + +;; set theme +(require-package 'solarized-theme) +(load-theme 'solarized-dark t) + +;; display line numbers +(global-linum-mode 1) +(setq linum-format " %d ") + +;; highlight current line +(global-hl-line-mode) + +;; highlight matching parentheses +(show-paren-mode 1) + +;; highlight lines exceeding 80 columns +(require 'whitespace) +(setq whitespace-style '(face empty tabs lines-tail trailing)) +(global-whitespace-mode t) + +;; disable word wrapping +(setq-default truncate-lines 1) + +(provide 'init-appearance) diff --git a/lisp/init-evil-mode.el b/lisp/init-evil-mode.el new file mode 100644 index 0000000..59cff19 --- /dev/null +++ b/lisp/init-evil-mode.el @@ -0,0 +1,15 @@ +;; install packages +(require-package 'evil) +(require-package 'key-chord) + +;; load evil mode +(require 'evil) +(evil-mode 1) + +;; load key-chord and map jj to normal mode +(require 'key-chord) +(setq key-chord-two-keys-delay 0.5) +(key-chord-define evil-insert-state-map "jj" 'evil-normal-state) +(key-chord-mode 1) + +(provide 'init-evil-mode) diff --git a/lisp/init-go-mode.el b/lisp/init-go-mode.el new file mode 100644 index 0000000..8a74f24 --- /dev/null +++ b/lisp/init-go-mode.el @@ -0,0 +1,7 @@ +;; install package +(require 'go-mode-load) + +;; load go-mode +(require 'go-mode-load) + +(provide 'init-go-mode) diff --git a/lisp/init-ido.el b/lisp/init-ido.el new file mode 100644 index 0000000..41afe25 --- /dev/null +++ b/lisp/init-ido.el @@ -0,0 +1,31 @@ +;; install packages +(require-package 'flx-ido) +(require-package 'ido-vertical-mode) +(require-package 'find-file-in-repository) + +;; load ido +(require 'ido) +(ido-mode t) +(setq ido-enable-prefix nil + ido-enable-flex-matching t + ido-case-fold nil + ido-auto-merge-work-directories-length -1 + ido-create-new-buffer 'always + ido-use-filename-at-point nil + ido-max-prospects 10 + ido-everywhere t) + +;; load flx-ido +(require 'flx-ido) +(flx-ido-mode 1) +;; disable ido faces to see flx highlights. +(setq ido-use-faces nil) + +;; vertical mode for ido +(require 'ido-vertical-mode) +(ido-vertical-mode) + +;; find file in project +(global-set-key (kbd "C-x f") 'find-file-in-repository) + +(provide 'init-ido) diff --git a/lisp/init-mac.el b/lisp/init-mac.el new file mode 100644 index 0000000..ba9bb2e --- /dev/null +++ b/lisp/init-mac.el @@ -0,0 +1,32 @@ +;; mac-specific settings +(when (eq system-type 'darwin) + ;; set font + (set-face-attribute 'default nil :family "Source Code Pro") + (set-face-attribute 'default nil :height 140) + + ;; configure modifiers + (setq mac-option-modifier 'super) + (setq mac-command-modifier 'meta) + (setq ns-function-modifier 'hyper) + + ;; Norwegian mac-keyboard + (define-key key-translation-map (kbd "s-8") (kbd "[")) + (define-key key-translation-map (kbd "s-(") (kbd "{")) + (define-key key-translation-map (kbd "s-9") (kbd "]")) + (define-key key-translation-map (kbd "s-)") (kbd "}")) + (define-key key-translation-map (kbd "s-7") (kbd "|")) + (define-key key-translation-map (kbd "s-/") (kbd "\\")) + (define-key key-translation-map (kbd "M-s-7") (kbd "M-|"))) + + ;; don't open files from the workspace in a new frame + (setq ns-pop-up-frames nil) + + ;; move deleted files to ~/.Trash + (setq delete-by-moving-to-trash t + trash-directory "~/.Trash/emacs") + + ;; use path from shell + (require-package 'exec-path-from-shell) + (exec-path-from-shell-initialize) + +(provide 'init-mac) diff --git a/lisp/init-package.el b/lisp/init-package.el new file mode 100644 index 0000000..f868c0d --- /dev/null +++ b/lisp/init-package.el @@ -0,0 +1,17 @@ +;; add melpa repo +(require 'package) +(add-to-list 'package-archives + '("melpa" . "http://melpa.milkbox.net/packages/") t) +(package-initialize) + +;; helper function to install a package if it doesn't exist +(defun require-package (package &optional min-version no-refresh) + (if (package-installed-p package min-version) + t + (if (or (assoc package package-archive-contents) no-refresh) + (package-install package) + (progn + (package-refresh-contents) + (require-package package min-version t))))) + +(provide 'init-package) diff --git a/lisp/init-sane-defaults.el b/lisp/init-sane-defaults.el new file mode 100644 index 0000000..9372972 --- /dev/null +++ b/lisp/init-sane-defaults.el @@ -0,0 +1,16 @@ +;; use soft tabs and 4 space indent +(setq-default + tab-width 4 + tab-stop-list (number-sequence 4 120 4) + indent-tabs-mode nil) + +;; bind return to newline-and-indent +(global-set-key (kbd "RET") 'newline-and-indent) + +;; make prompts accept y or n +(defalias 'yes-or-no-p 'y-or-n-p) + +;; no confirmation for non-existent files or buffers +(setq confirm-nonexistent-file-or-buffer nil) + +(provide 'init-sane-defaults) diff --git a/lisp/init-server.el b/lisp/init-server.el new file mode 100644 index 0000000..12a223f --- /dev/null +++ b/lisp/init-server.el @@ -0,0 +1,6 @@ +;; start server for emacsclient +(require 'server) +(unless (server-running-p) + (server-start)) + +(provide 'init-server) diff --git a/lisp/init-yaml-mode.el b/lisp/init-yaml-mode.el new file mode 100644 index 0000000..3569998 --- /dev/null +++ b/lisp/init-yaml-mode.el @@ -0,0 +1,7 @@ +;; install package +(require-package 'yaml-mode) + +;; load yaml-mode +(require 'yaml-mode) + +(provide 'init-yaml-mode) |