dotfiles/.emacs.d/init.el
2014-08-15 14:12:11 -04:00

183 lines
6 KiB
EmacsLisp

;; /This/ file (~init.el~) that you are reading
;; should be in this folder
(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/neotree")
(if (< emacs-major-version 23)
(defun characterp (obj)
(and (char-or-string-p obj) (not (stringp obj)))))
(fset 'yes-or-no-p 'y-or-n-p)
;; Package Manager
;; See ~Cask~ file for its configuration
;; https://github.com/cask/cask
(require 'cask "~/.cask/cask.el")
(cask-initialize)
;; Keeps ~Cask~ file in sync with the packages
;; that you install/uninstall via ~M-x list-packages~
;; https://github.com/rdallasgray/pallet
(require 'pallet)
;; Root directory
(setq root-dir (file-name-directory
(or (buffer-file-name) load-file-name)))
(setq make-backup-files nil)
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
;; Don't show startup screen
(let ((background-color "#2F2F2F")
(foreground-color "LightGrey")
(fname "Inconsolata-13")
(fheight 45)
(fwidth 115))
(set-default-font fname)
(add-to-list 'default-frame-alist (cons 'font fname))
; (set-background-color background-color)
; (add-to-list 'default-frame-alist (cons 'background-color background-color))
; (set-foreground-color foreground-color)
; (add-to-list 'default-frame-alist (cons 'foreground-color foreground-color))
(add-to-list 'default-frame-alist (cons 'height fheight))
(add-to-list 'default-frame-alist (cons 'width fwidth))
)
(setq inhibit-startup-screen t)
;; Show keystrokes
(setq echo-keystrokes 0.02)
;; Path
(require 'exec-path-from-shell)
(when (memq window-system '(mac ns))
(exec-path-from-shell-initialize))
;; Evil!
(require 'evil)
(evil-mode 1)
(setq evil-default-cursor t)
;; Jedi.el
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:setup-keys t) ; optional
(setq jedi:complete-on-dot t) ; optional
;; Git
(require 'magit)
(eval-after-load 'magit
(progn '(global-set-key (kbd "C-x g") 'magit-status)))
;; flx-ido completion system, recommended by Projectile
(require 'flx-ido)
(flx-ido-mode 1)
;; change it if you have a fast processor.
(setq flx-ido-threshhold 1000)
;; Project management
(require 'ack-and-a-half)
(require 'projectile)
(projectile-global-mode)
; Autocomplete
(require 'auto-complete-config)
(ac-config-default)
(setq ac-dwim t)
(setq ac-expand-on-auto-complete nil)
(setq ac-use-fuzzy t)
(setq ac-auto-start t)
(define-key ac-completing-map (kbd "<escape>") 'ac-stop)
; Company-mode autocomplete
(require 'company) ; load company mode
(require 'company-go) ; load company mode go backend
(setq company-tooltip-limit 20) ; bigger popup window
(setq company-minimum-prefix-length 0) ; autocomplete right after '.'
(setq company-idle-delay .3) ; shorter delay before autocompletion popup
(setq company-echo-delay 0) ; removes annoying blinking
(setq company-begin-commands '(self-insert-command)) ; start autocompletion only after typing
;; Snippets
;; https://github.com/capitaomorte/yasnippet
(require 'yasnippet)
(yas-load-directory (concat root-dir "snippets"))
(yas-global-mode 1)
;; Neotree
(require 'neotree)
(menu-bar-mode -1)
;; Evil Key Defines
(define-key evil-normal-state-map "gc" 'kill-buffer-and-window)
(load-theme 'barak t)
;; _
;; | |__ _ _ _ __ _ _ _ __ _ __ _ ___ ___
;; | / _` | ' \/ _` | || / _` / _` / -_|_-<
;; |_\__,_|_||_\__, |\_,_\__,_\__, \___/__/
;; |___/ |___/
(add-hook 'go-mode-hook (lambda ()
(set (make-local-variable 'company-backends) '(company-go))
(company-mode)))
;; Hack to get *Messages* in viper-mode.
;; ;; (must be done after loading viper)
;; ;; Futzing with fundamental-mode doesn't seem to help.
;; (save-excursion
;; (set-buffer "*Messages*")
;; (viper-change-state-to-vi))
;Tabbar settings (Simple groups)
;(defun tabbar-buffer-groups ()
;"Return the list of group names the current buffer belongs to.
;This function is a custom function for tabbar-mode's tabbar-buffer-groups.
;This function group all buffers into 3 groups:
;Those Dired, those user buffer, and those emacs buffer.
;Emacs buffer are those starting with “*”."
;(list
;(cond
;((string-equal "*" (substring (buffer-name) 0 1))
;"Emacs Buffer"
;)
;((eq major-mode 'dired-mode)
;"Dired"
;)
;(t
;"User Buffer"
;)
;))) ; from Xah Lee
;(setq tabbar-buffer-groups-function 'tabbar-buffer-groups)
;(tabbar-mode)
;(add-to-list 'ex-token-alist '("ls" (list-buffers)))
;(add-to-list 'ex-token-alist '("mx" (icicle-execute-extended-command)))
;(vimpulse-map "gn" 'tabbar-forward-tab)
;(vimpulse-map "gp" 'tabbar-backward-tab)
;(vimpulse-map "gw" 'vimpulse-search-forward-for-symbol-at-point)
;(vimpulse-map "gK" 'kill-buffer-and-window)
;(vimpulse-map "gc" 'kill-buffer-and-window)
;(define-key viper-insert-global-user-map "\C-d" 'delete-char))
;(define-key evil-normal-state-map "gn" 'tabbar-forward-tab)
;(define-key evil-normal-state-map "gp" 'tabbar-backward-tab)
;(add-hook 'window-setup-hook 'delete-other-windows)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes (quote ("f2acfa2f448218e8868bbb4b914e9f5a8c580e8a33d19809f4a4f32ad306cab5" "9df3b76bdd78c0209521b4e0374dcbdd4f2c8cd40ca00fedcd499e53630c646b" "6ca7862869dcbf7079ab507dbceb37e42e71fe7dd4b83f994de9b42037436bf2" "7a3b1a9661a271313a71a5177f31f344f533cab4c68c47985571d28b8f320769" "9370aeac615012366188359cb05011aea721c73e1cb194798bc18576025cabeb" default))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)