summaryrefslogtreecommitdiffstats
path: root/init.el
diff options
context:
space:
mode:
authorMartin Polden <martin.polden@gmail.com>2014-03-14 18:00:13 +0100
committerMartin Polden <martin.polden@gmail.com>2014-03-14 18:00:13 +0100
commitf24ab4df392d18be6a0f2506eb2df7e5954c9d65 (patch)
tree2ea92705aa03e012471cdbc99175a94ffa867baf /init.el
Initial import
Diffstat (limited to 'init.el')
-rw-r--r--init.el137
1 files changed, 137 insertions, 0 deletions
diff --git a/init.el b/init.el
new file mode 100644
index 0000000..4f49066
--- /dev/null
+++ b/init.el
@@ -0,0 +1,137 @@
+;; 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)