;; /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 "") '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. )