diff --git a/.emacs.d/Cask b/.emacs.d/Cask index a1ffcea..2fb7ab5 100644 --- a/.emacs.d/Cask +++ b/.emacs.d/Cask @@ -17,15 +17,20 @@ (depends-on "exec-path-from-shell") (depends-on "flx-ido") (depends-on "flycheck") +(depends-on "git-gutter") (depends-on "go-autocomplete") (depends-on "go-mode") +(depends-on "go-mode") (depends-on "grizzl") (depends-on "jedi") (depends-on "key-chord") (depends-on "magit") (depends-on "neotree") (depends-on "pallet") +(depends-on "powerline") +(depends-on "powerline-evil") (depends-on "projectile") +(depends-on "relative-buffers") (depends-on "tabbar") (depends-on "yasnippet") (depends-on "zenburn-theme") \ No newline at end of file diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 524811a..4670578 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -7,6 +7,10 @@ (and (char-or-string-p obj) (not (stringp obj))))) (fset 'yes-or-no-p 'y-or-n-p) +(menu-bar-mode -1) + +(setq tab-width 4) +(setq indent-tabs-mode nil) ;; Package Manager ;; See ~Cask~ file for its configuration @@ -23,6 +27,7 @@ (setq root-dir (file-name-directory (or (buffer-file-name) load-file-name))) (setq make-backup-files nil) +(setq auto-save-default nil) (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") ;; Don't show startup screen @@ -50,6 +55,42 @@ (require 'exec-path-from-shell) (when (memq window-system '(mac ns)) (exec-path-from-shell-initialize)) +(global-relative-buffers-mode) + +;; Tabbar +(defun autohide-tabbar () + "Make tabbar briefly show itself while you are switching + buffers with shortcuts. Tested with GNU Emacs 23." + (defvar *tabbar-autohide-delay* 3) + (interactive) + (tabbar-mode nil) + (defvar *tabbar-autohide-timer* nil) + (defun renew-tabbar-autohide-timer () + (if (timerp *tabbar-autohide-timer*) + (cancel-timer *tabbar-autohide-timer*)) + (setf *tabbar-autohide-timer* + (run-with-timer + 3 nil (lambda () + (tabbar-mode -1) + (setf *tabbar-autohide-timer* + nil))))) + (global-set-key + [C-next] + (lambda () + (interactive) + (if tabbar-mode + (tabbar-forward) + (tabbar-mode 1)) + (renew-tabbar-autohide-timer))) + (global-set-key + [C-prior] + (lambda () + (interactive) + (if tabbar-mode + (tabbar-backward) + (tabbar-mode 1)) + (renew-tabbar-autohide-timer)))) + (autohide-tabbar) ;; Evil! (require 'evil-leader) @@ -69,6 +110,11 @@ (eval-after-load 'magit (progn '(global-set-key (kbd "C-x g") 'magit-status))) +;; gitgutter +(global-git-gutter-mode) +(custom-set-variables + '(git-gutter:hide-gutter t)) + ;; flx-ido completion system, recommended by Projectile (require 'flx-ido) (require 'grizzl) @@ -111,12 +157,27 @@ (require 'key-chord) (require 'tabbar) + +;; Functions +(defun move-cursor-next-pane () + "Move cursor to the next pane." + (interactive) + (other-window 1)) + +(defun move-cursor-previous-pane () + "Move cursor to the previous pane." + (interactive) + (other-window -1)) ;; Evil Key Defines (define-key evil-normal-state-map "gc" 'kill-buffer-and-window) (define-key evil-normal-state-map "gn" 'tabbar-forward-tab) (define-key evil-normal-state-map "gp" 'tabbar-backward-tab) (define-key evil-normal-state-map (kbd "C-e") 'move-end-of-line) (define-key evil-normal-state-map (kbd "C-a") 'move-beginning-of-line) +(define-key evil-normal-state-map (kbd "C-j") 'move-cursor-next-pane) +(define-key evil-normal-state-map (kbd "C-k") 'move-cursor-previous-pane) + + (define-key evil-insert-state-map (kbd "C-e") 'move-end-of-line) (define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line) ;(setq key-chord-two-keys-delay 0.5) @@ -138,6 +199,8 @@ ;; |_\__,_|_||_\__, |\_,_\__,_\__, \___/__/ ;; |___/ |___/ (add-hook 'go-mode-hook (lambda () + (add-hook 'before-save-hook #'gofmt-before-save) + (setq indent-tabs-mode t) (set (make-local-variable 'company-backends) '(company-go)) (company-mode)))