summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <martin.polden@gmail.com>2014-03-14 18:44:13 +0100
committerMartin Polden <martin.polden@gmail.com>2014-03-14 18:44:13 +0100
commit348c184925e7ff8b399e0c52df178ac76853f49d (patch)
tree68cfb8a54e42ae5834de4e1a4a62939a1a249d1f
parent5fffa0575248c65c45e8255aea23c4304f179321 (diff)
Split up config into multiple files
-rw-r--r--init.el150
-rw-r--r--lisp/init-appearance.el33
-rw-r--r--lisp/init-evil-mode.el15
-rw-r--r--lisp/init-go-mode.el7
-rw-r--r--lisp/init-ido.el31
-rw-r--r--lisp/init-mac.el32
-rw-r--r--lisp/init-package.el17
-rw-r--r--lisp/init-sane-defaults.el16
-rw-r--r--lisp/init-server.el6
-rw-r--r--lisp/init-yaml-mode.el7
10 files changed, 177 insertions, 137 deletions
diff --git a/init.el b/init.el
index 4f49066..f9697a2 100644
--- a/init.el
+++ b/init.el
@@ -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)