Created
April 14, 2015 07:55
-
-
Save andrevdm/1aea10918ef7cf096ba5 to your computer and use it in GitHub Desktop.
init.el
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;package sources | |
(load "package") | |
(package-initialize) | |
(add-to-list 'package-archives | |
'("marmalade" . "http://marmalade-repo.org/packages/")) | |
(add-to-list 'package-archives | |
'("melpa" . "http://melpa.milkbox.net/packages/") t) | |
(add-to-list 'package-archives | |
'("gnu" . "http://elpa.gnu.org/packages/") t) | |
(add-to-list 'package-archives | |
'("org" . "http://orgmode.org/elpa/") t) | |
(setq package-archive-enable-alist '(("melpa" deft magit))) | |
;;install default packaged | |
(message "%s" "Refreshing package database...") | |
(package-initialize) | |
(when (not package-archive-contents) | |
(package-refresh-contents)) | |
(defvar my-packages '(eimp | |
evil-leader | |
evil-paredit | |
evil-tabs | |
elscreen | |
evil | |
fsharp-mode | |
goto-chg | |
haskell-mode | |
httpd | |
impatient-mode | |
clojure-mode | |
omnisharp | |
flycheck | |
auto-complete | |
paredit | |
pkg-info | |
epl | |
dash | |
popup | |
pos-tip | |
project-explorer | |
es-windows | |
es-lib | |
relative-line-numbers | |
sauron | |
simple-httpd | |
undo-tree | |
tracking | |
shorten | |
s | |
coffee-mode | |
csharp-mode | |
erlang | |
feature-mode | |
gist | |
graphviz-dot-mode | |
htmlize | |
markdown-mode | |
marmalade | |
writegood-mode | |
org | |
;;ido | |
helm | |
restclient | |
web-mode | |
yaml-mode | |
cyberpunk-theme | |
)) | |
(dolist (p my-packages) | |
(when (not (package-installed-p p)) | |
(package-install p))) | |
;;NeoTree | |
(add-to-list 'load-path "~/.emacs.d/neotree") | |
(require 'neotree) | |
(global-set-key [f8] 'neotree-toggle) | |
(add-hook 'neotree-mode-hook | |
(lambda () | |
(define-key evil-normal-state-local-map (kbd "TAB") 'neotree-enter) | |
(define-key evil-normal-state-local-map (kbd "SPC") 'neotree-enter) | |
(define-key evil-normal-state-local-map (kbd "q") 'neotree-hide) | |
(define-key evil-normal-state-local-map (kbd "RET") 'neotree-enter))) | |
;;UI defaults | |
(scroll-bar-mode -1) | |
(tool-bar-mode -1) | |
(menu-bar-mode -1) | |
;;display defaults | |
;;(when window-system | |
;; (setq frame-title-format '(buffer-file-name "%f" ("%b"))) | |
;; (set-face-attribute 'default nil | |
;; :family "Inconsolata" | |
;; :height 140 | |
;; :weight 'normal | |
;; :width 'normal) | |
;; | |
;; (when (functionp 'set-fontset-font) | |
;; (set-fontset-font "fontset-default" | |
;; 'unicode | |
;; (font-spec :family "DejaVu Sans Mono" | |
;; :width 'normal | |
;; :size 12.4 | |
;; :weight 'normal)))) | |
(setq-default indicate-empty-lines t) | |
(when (not indicate-empty-lines) | |
(toggle-indicate-empty-lines)) | |
;;No tabs | |
(setq tab-width 2 | |
indent-tabs-mode nil) | |
;;y=yes, n=no | |
(defalias 'yes-or-no-p 'y-or-n-p) | |
;;Flyspell settings | |
(setq flyspell-issue-welcome-flag nil) | |
(if (eq system-type 'darwin) | |
(setq-default ispell-program-name "/usr/local/bin/aspell") | |
(setq-default ispell-program-name "/usr/bin/aspell")) | |
(setq-default ispell-list-command "list") | |
(global-flycheck-mode t) | |
;;zsh hook | |
(add-to-list 'auto-mode-alist '("\\.zsh$" . shell-script-mode)) | |
;;2 space indent for JS mode | |
(defun js-custom () | |
"js-mode-hook" | |
(setq js-indent-level 2)) | |
(add-hook 'js-mode-hook 'js-custom) | |
;;markdown mode settings | |
(add-to-list 'auto-mode-alist '("\\.md$" . markdown-mode)) | |
(add-to-list 'auto-mode-alist '("\\.mdown$" . markdown-mode)) | |
(add-hook 'markdown-mode-hook | |
(lambda () | |
(visual-line-mode t) | |
(writegood-mode t) | |
(flyspell-mode t))) | |
(setq markdown-command "pandoc --smart -f markdown -t html") | |
;;EVIL mode | |
(add-to-list 'load-path "~/.emacs.d/evil") | |
(setq evil-search-module 'evil-search | |
evil-want-C-u-scroll t | |
evil-want-C-w-in-emacs-state t) | |
(require 'evil) | |
(evil-mode 1) | |
;; EVIL - esc quits | |
(define-key evil-normal-state-map [escape] 'keyboard-quit) | |
(define-key evil-visual-state-map [escape] 'keyboard-quit) | |
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit) | |
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit) | |
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit) | |
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit) | |
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit) | |
;;EVIL - colours | |
(set-face-attribute 'default nil :height 100) | |
(setq evil-emacs-state-cursor '("red" box)) | |
(setq evil-normal-state-cursor '("green" box)) | |
(setq evil-visual-state-cursor '("orange" box)) | |
(setq evil-insert-state-cursor '("green" bar)) | |
(setq evil-replace-state-cursor '("red" bar)) | |
(setq evil-operator-state-cursor '("red" hollow)) | |
;;EVIL - nav windows with hjkl | |
(define-key evil-normal-state-map (kbd "C-h") 'evil-window-left) | |
(define-key evil-normal-state-map (kbd "C-j") 'evil-window-down) | |
(define-key evil-normal-state-map (kbd "C-k") 'evil-window-up) | |
(define-key evil-normal-state-map (kbd "C-l") 'evil-window-right) | |
;;EVIL - relative lin numbers on | |
(global-relative-line-numbers-mode t) | |
;;EVIL - misc | |
(define-key global-map (kbd "RET") 'newline-and-indent) | |
;;; ORG Mode | |
;; Org-mode settings | |
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) | |
(global-set-key "\C-cl" 'org-store-link) | |
(global-set-key "\C-ca" 'org-agenda) | |
(setq org-src-fontify-natively t) | |
;;; Omnisharp | |
(eval-after-load 'company | |
'(add-to-list 'company-backends 'company-omnisharp)) | |
;;IDO | |
;;(setq ido-enable-flex-matching t) | |
;;(setq ido-everywhere t) | |
;;(ido-mode 1) | |
;;theme | |
;(if window-system | |
; (load-theme 'solarized-light t) | |
; (load-theme 'wombat t)) | |
(load-theme 'cyberpunk t) | |
;;;Startup | |
(setq inhibit-splash-screen t) | |
(icomplete-mode 99) | |
(require 'fsharp-mode) | |
;;;Helm | |
(require 'helm) | |
(require 'helm-config) | |
(helm-mode 1) | |
(setq helm-quick-update t ; do not display invisible candidates | |
helm-split-window-in-side-p t ; open helm buffer inside current window, not occupy whole other window | |
helm-buffers-fuzzy-matching t ; fuzzy matching buffer names when non--nil | |
helm-move-to-line-cycle-in-source t ; move to end or beginning of source when reaching top or bottom of source. | |
helm-ff-search-library-in-sexp t ; search for library in `require' and `declare-function' sexp. | |
helm-scroll-amount 8 ; scroll 8 lines other window using M-<next>/M-<prior> | |
helm-ff-file-name-history-use-recentf t) | |
(setq backup-inhibited t) | |
;;;Haskell | |
(require 'haskell-interactive-mode) | |
(require 'haskell-process) | |
(add-hook 'haskell-mode-hook 'interactive-haskell-mode) | |
(custom-set-variables | |
'(haskell-process-suggest-remove-import-lines t) | |
'(haskell-process-auto-import-loaded-modules t) | |
'(haskell-process-log t)) | |
;;Omnisharp + EVIL integration | |
;; Example evil-mode config | |
(evil-define-key 'insert omnisharp-mode-map (kbd "M-.") 'omnisharp-auto-complete) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "<f12>") 'omnisharp-go-to-definition) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g u") 'omnisharp-find-usages) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g I") 'omnisharp-find-implementations) ; g i is taken | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g o") 'omnisharp-go-to-definition) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g r") 'omnisharp-run-code-action-refactoring) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g f") 'omnisharp-fix-code-issue-at-point) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g F") 'omnisharp-fix-usings) | |
(evil-define-key 'normal omnisharp-mode-map (kbd "g R") 'omnisharp-rename) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", i") 'omnisharp-current-type-information) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", I") 'omnisharp-current-type-documentation) | |
(evil-define-key 'insert omnisharp-mode-map (kbd ".") 'omnisharp-add-dot-and-auto-complete) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", n t") 'omnisharp-navigate-to-current-file-member) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", n s") 'omnisharp-navigate-to-solution-member) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", n f") 'omnisharp-navigate-to-solution-file-then-file-member) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", n F") 'omnisharp-navigate-to-solution-file) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ", n r") 'omnisharp-navigate-to-region) | |
;(evil-define-key 'normal omnisharp-mode-map (kbd "<f12>") 'omnisharp-show-last-auto-complete-result) | |
;(evil-define-key 'insert omnisharp-mode-map (kbd "<f12>") 'omnisharp-show-last-auto-complete-result) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ",.") 'omnisharp-show-overloads-at-point) | |
;(evil-define-key 'normal omnisharp-mode-map (kbd ",rl") 'recompile) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ",rl") 'omnisharp-build-in-emacs) | |
(evil-define-key 'normal omnisharp-mode-map (kbd ",rt") | |
(lambda() (interactive) (omnisharp-unit-test "single"))) | |
(evil-define-key 'normal omnisharp-mode-map | |
(kbd ",rf") | |
(lambda() (interactive) (omnisharp-unit-test "fixture"))) | |
(evil-define-key 'normal omnisharp-mode-map | |
(kbd ",ra") | |
(lambda() (interactive) (omnisharp-unit-test "all"))) | |
;; Speed up auto-complete on mono drastically. This comes with the | |
;; downside that documentation is impossible to fetch. | |
(setq omnisharp-auto-complete-want-documentation nil) | |
;;;C# mode | |
(defun my-csharp-mode-hook () | |
(electric-pair-mode 0) | |
;(c-default-style "linux") | |
(c-set-offset 'substatement-open 0) | |
(c-set-offset 'arglist-intro '+) | |
(c-set-offset 'statement-cont 0)) | |
(add-hook 'csharp-mode-hook 'my-csharp-mode-hook) | |
(add-hook 'csharp-mode-hook 'omnisharp-mode) | |
(setq c-basic-offset 4) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment