Skip to content

Instantly share code, notes, and snippets.

@amirkarimi
Last active September 9, 2017 20:45
Show Gist options
  • Save amirkarimi/4dea4579da99b5507afe32f15c889199 to your computer and use it in GitHub Desktop.
Save amirkarimi/4dea4579da99b5507afe32f15c889199 to your computer and use it in GitHub Desktop.
My Emacs Config
;; global variables
(setq
inhibit-startup-screen t
create-lockfiles nil
make-backup-files nil
column-number-mode t
scroll-error-top-bottom t
show-paren-delay 0.5
use-package-always-ensure t
sentence-end-double-space nil
ensime-startup-notification nil
ensime-startup-snapshot-notification nil)
;; buffer local variables
(setq-default
indent-tabs-mode nil
tab-width 4
c-basic-offset 4)
;; modes
;;(electric-indent-mode 0)
(delete-selection-mode 1)
(show-paren-mode 1)
;; global keybindings
(global-unset-key (kbd "C-z"))
(global-set-key (kbd "M-[") 'ace-window)
(global-set-key (kbd "C-x g") 'magit-status)
;; the package manager
(require 'package)
(setq
package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("org" . "http://orgmode.org/elpa/")
("melpa" . "http://melpa.org/packages/")
("melpa-stable" . "http://stable.melpa.org/packages/")))
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(powerline-default-theme)
;; Mac
(when (memq window-system '(mac ns x))
(setq mac-command-modifier 'control)
(setq mac-control-modifier 'super)
(exec-path-from-shell-initialize)
(global-set-key [home] 'move-beginning-of-line)
(global-set-key [end] 'move-end-of-line))
;; Projectile
(use-package projectile
:demand
:init (setq projectile-use-git-grep t)
:config (projectile-global-mode t)
:bind (("s-f" . projectile-find-file)
("s-F" . projectile-grep)))
;; Hightlight
(use-package highlight-symbol
:diminish highlight-symbol-mode
:commands highlight-symbol
:bind ("s-h" . highlight-symbol))
;; Ensime
(use-package ensime
:ensure t
:pin melpa)
;; SBT mode
(use-package sbt-mode
:pin melpa)
;; Scala mode
(use-package scala-mode
:pin melpa)
;; Ido
(use-package flx-ido
:demand
:init
(setq
ido-enable-flex-matching t
;; C-d to open directories
;; C-f to revert to find-file
ido-show-dot-for-dired nil
ido-enable-dot-prefix t)
:config
(ido-mode 1)
(ido-everywhere 1)
(ido-vertical-mode 1)
(flx-ido-mode 1))
;; imenu
(use-package popup-imenu
:commands popup-imenu
:bind ("M-i" . popup-imenu))
;; Neo Tree
(use-package neotree)
(use-package all-the-icons)
(global-set-key [f8] 'neotree-toggle)
(setq neo-theme (if (display-graphic-p) 'icons))
(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.
'(ansi-color-faces-vector
[default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector
["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(custom-enabled-themes (quote (monokai)))
'(custom-safe-themes
(quote
("3629b62a41f2e5f84006ff14a2247e679745896b5eaa1d5bcfbc904a3441b0cd" "2f0a552a9d14fe8ddaaacdb7b82a0eee1ea1f7f5d0850789915e5b04a1b9669f" "596a1db81357b93bd1ae17bed428d0021d12f30cda7bbb31ac44e115039171ae" "ff7625ad8aa2615eae96d6b4469fcc7d3d20b2e1ebc63b761a349bebbb9d23cb" "628278136f88aa1a151bb2d6c8a86bf2b7631fbea5f0f76cba2a0079cd910f7d" "67e998c3c23fe24ed0fb92b9de75011b92f35d3e89344157ae0d544d50a63a72" "06f0b439b62164c6f8f84fdda32b62fb50b6d00e8b01c2208e55543a6337433a" "82d2cac368ccdec2fcc7573f24c3f79654b78bf133096f9b40c20d97ec1d8016" "bb08c73af94ee74453c90422485b29e5643b73b05e8de029a6909af6a3fb3f58" "1b8d67b43ff1723960eb5e0cba512a2c7a2ad544ddb2533a90101fd1852b426e" default)))
'(fci-rule-color "#383838")
'(flycheck-color-mode-line-face-to-color (quote mode-line-buffer-id))
'(initial-frame-alist (quote ((fullscreen . maximized))))
'(menu-bar-mode nil)
'(nrepl-message-colors
(quote
("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3")))
'(package-selected-packages
(quote
(monokai-theme ido-vertical-mode helm-projectile popup-imenu darktooth-theme helm dired+ highlight-symbol ztree plantuml-mode dracula-theme yaml-mode ## groovy-mode ace-window list-packages-ext zenburn-theme web-mode use-package scss-mode projectile play-routes-mode neotree markdown-mode magit jedi ensime company-jedi color-theme-sanityinc-tomorrow)))
'(pdf-view-midnight-colors (quote ("#DCDCCC" . "#383838")))
'(scroll-bar-mode (quote right))
'(tool-bar-mode nil)
'(vc-annotate-background "#2B2B2B")
'(vc-annotate-color-map
(quote
((20 . "#BC8383")
(40 . "#CC9393")
(60 . "#DFAF8F")
(80 . "#D0BF8F")
(100 . "#E0CF9F")
(120 . "#F0DFAF")
(140 . "#5F7F5F")
(160 . "#7F9F7F")
(180 . "#8FB28F")
(200 . "#9FC59F")
(220 . "#AFD8AF")
(240 . "#BFEBBF")
(260 . "#93E0E3")
(280 . "#6CA0A3")
(300 . "#7CB8BB")
(320 . "#8CD0D3")
(340 . "#94BFF3")
(360 . "#DC8CC3"))))
'(vc-annotate-very-old-color "#DC8CC3"))
(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.
)
(put 'dired-find-alternate-file 'disabled nil)
;; Scripts
(defun sort-import-group ()
"Convert word at point (or selected region) to lower camel case."
(interactive)
(let* ((bounds (cons (region-beginning) (region-end)))
(text (buffer-substring-no-properties (car bounds) (cdr bounds))))
(when bounds
(delete-region (car bounds) (cdr bounds))
(let ((splited-sorted (sort
(split-string text
","
nil
" ")
'string<)))
(insert (mapconcat 'identity
splited-sorted
", "))))))
;; global variables
(setq
inhibit-startup-screen t
create-lockfiles nil
make-backup-files nil
column-number-mode t
scroll-error-top-bottom t
show-paren-delay 0.5
use-package-always-ensure t
sentence-end-double-space nil
ensime-startup-notification nil)
;; buffer local variables
(setq-default
indent-tabs-mode nil
tab-width 4
c-basic-offset 4)
;; modes
;;(electric-indent-mode 0)
(delete-selection-mode 1)
;; global keybindings
(global-unset-key (kbd "C-z"))
(global-set-key (kbd "M-[") 'ace-window)
(global-set-key (kbd "C-x g") 'magit-status)
;; the package manager
(require 'package)
(setq
package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("org" . "http://orgmode.org/elpa/")
("melpa" . "http://melpa.org/packages/")
("melpa-stable" . "http://stable.melpa.org/packages/")))
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(powerline-default-theme)
;; Mac
(when (memq window-system '(mac ns x))
(setq mac-command-modifier 'control)
(setq mac-control-modifier 'super)
(exec-path-from-shell-initialize)
(global-set-key [home] 'move-beginning-of-line)
(global-set-key [end] 'move-end-of-line))
;; Projectile
(use-package projectile
:demand
:init (setq projectile-use-git-grep t)
:config (projectile-global-mode t)
:bind (("s-f" . projectile-find-file)
("s-F" . projectile-grep)))
;; Ido
(use-package flx-ido
:demand
:init
(setq
ido-enable-flex-matching t
;; C-d to open directories
;; C-f to revert to find-file
ido-show-dot-for-dired nil
ido-enable-dot-prefix t)
:config
(ido-mode 1)
(ido-everywhere 1)
(flx-ido-mode 1))
;; Hightlight
(use-package highlight-symbol
:diminish highlight-symbol-mode
:commands highlight-symbol
:bind ("s-h" . highlight-symbol))
(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.
'(ansi-color-faces-vector
[default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector
["#3F3F3F" "#CC9393" "#7F9F7F" "#F0DFAF" "#8CD0D3" "#DC8CC3" "#93E0E3" "#DCDCCC"])
'(custom-enabled-themes (quote (dracula)))
'(custom-safe-themes
(quote
("ff7625ad8aa2615eae96d6b4469fcc7d3d20b2e1ebc63b761a349bebbb9d23cb" "628278136f88aa1a151bb2d6c8a86bf2b7631fbea5f0f76cba2a0079cd910f7d" "67e998c3c23fe24ed0fb92b9de75011b92f35d3e89344157ae0d544d50a63a72" "06f0b439b62164c6f8f84fdda32b62fb50b6d00e8b01c2208e55543a6337433a" "82d2cac368ccdec2fcc7573f24c3f79654b78bf133096f9b40c20d97ec1d8016" "bb08c73af94ee74453c90422485b29e5643b73b05e8de029a6909af6a3fb3f58" "1b8d67b43ff1723960eb5e0cba512a2c7a2ad544ddb2533a90101fd1852b426e" default)))
'(fci-rule-color "#383838")
'(flycheck-color-mode-line-face-to-color (quote mode-line-buffer-id))
'(initial-frame-alist (quote ((fullscreen . maximized))))
'(menu-bar-mode nil)
'(nrepl-message-colors
(quote
("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3")))
'(package-selected-packages
(quote
(highlight-symbol ztree plantuml-mode dracula-theme yaml-mode ## groovy-mode ace-window list-packages-ext zenburn-theme web-mode use-package scss-mode projectile play-routes-mode neotree markdown-mode magit jedi ensime company-jedi color-theme-sanityinc-tomorrow)))
'(pdf-view-midnight-colors (quote ("#DCDCCC" . "#383838")))
'(scroll-bar-mode (quote right))
'(tool-bar-mode nil)
'(vc-annotate-background "#2B2B2B")
'(vc-annotate-color-map
(quote
((20 . "#BC8383")
(40 . "#CC9393")
(60 . "#DFAF8F")
(80 . "#D0BF8F")
(100 . "#E0CF9F")
(120 . "#F0DFAF")
(140 . "#5F7F5F")
(160 . "#7F9F7F")
(180 . "#8FB28F")
(200 . "#9FC59F")
(220 . "#AFD8AF")
(240 . "#BFEBBF")
(260 . "#93E0E3")
(280 . "#6CA0A3")
(300 . "#7CB8BB")
(320 . "#8CD0D3")
(340 . "#94BFF3")
(360 . "#DC8CC3"))))
'(vc-annotate-very-old-color "#DC8CC3"))
(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.
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 140 :width normal :foundry "nil" :family "Menlo")))))
(put 'dired-find-alternate-file 'disabled nil)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment