-
-
Save erickgnavar/c263bacb4621ce63a2630aebdc6e23af to your computer and use it in GitHub Desktop.
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
(require 'package) | |
(add-to-list 'package-archives | |
'("melpa" . "http://melpa.org/packages/") t) | |
(package-initialize) | |
(when (not package-archive-contents) | |
(package-refresh-contents)) | |
(defvar my-packages | |
'( | |
better-defaults | |
helm | |
helm-ag | |
neotree | |
magit | |
pbcopy | |
vimish-fold | |
nyan-mode | |
evil | |
evil-magit | |
evil-nerd-commenter | |
evil-surround | |
evil-leader | |
evil-vimish-fold | |
evil-tabs | |
ace-jump-mode | |
projectile | |
editorconfig | |
markdown-mode | |
powerline | |
autopair | |
yasnippet | |
smex | |
gruvbox-theme | |
gist | |
git-gutter | |
git-timemachine | |
expand-region | |
helm-dash | |
restclient | |
slime | |
erc-image | |
company-emoji | |
which-key | |
;; org packages | |
ox-twbs | |
;; ox-reveal | |
htmlize | |
writeroom-mode | |
;; lints | |
flycheck | |
flycheck-pyflakes | |
flycheck-elixir | |
;; languages | |
web-mode | |
emmet-mode | |
jsx-mode | |
yaml-mode | |
django-mode | |
go-mode | |
rust-mode | |
cargo | |
elixir-mode | |
alchemist | |
elpy | |
jedi | |
virtualenvwrapper | |
erlang | |
elm-mode | |
py-autopep8 | |
lfe-mode)) | |
;; install packages | |
(mapc #'(lambda (package) | |
(unless (package-installed-p package) | |
(package-install package))) | |
my-packages) | |
;; basic customization | |
(menu-bar-mode 1) | |
(setq inhibit-startup-message t) | |
(load-theme 'gruvbox t) | |
(column-number-mode t) ;; enable column number mode | |
(global-hl-line-mode 1) ;; highlight current line | |
;; (global-linum-mode) | |
(require 'smex) | |
(smex-initialize) | |
;; lints conf | |
(global-flycheck-mode) | |
;; Company mode | |
(require 'company) | |
(global-company-mode 1) | |
(setq company-idle-delay 0.1) | |
(setq company-tooltip-limit 10) | |
(setq company-minimum-prefix-length 2) | |
(setq company-tooltip-flip-when-above t) | |
(add-hook 'after-init-hook 'global-company-mode) | |
;; (require 'company-emoji) | |
;; (add-to-list 'company-backends 'company-emoji) | |
;; git | |
(global-git-gutter-mode t) | |
(git-gutter:linum-setup) | |
;; folding | |
;; (require 'vimish-fold) | |
;; (vimish-fold-global-mode 1) | |
(require 'evil-vimish-fold) | |
(evil-vimish-fold-mode 1) | |
;; which key | |
(which-key-setup-minibuffer) | |
; evil mode | |
(require 'evil) | |
(global-evil-leader-mode) | |
;; (evil-leader/set-leader ",") | |
(evil-leader/set-key | |
"f" 'find-file | |
"a" 'helm-ag-project-root | |
;; "e" 'projectile-find-file | |
"e" 'custom-find-file-projectile | |
"c" 'evilnc-comment-operator | |
;; "b" 'switch-to-buffer | |
"b" 'helm-buffers-list | |
"n" 'evil-buffer-new | |
"y" 'helm-show-kill-ring | |
"SPC" 'helm-M-x | |
"m" 'ace-jump-mode | |
"l" 'linum-mode | |
"s" 'toggle-spanish-characters | |
"k" 'kill-buffer) | |
(evil-mode 1) | |
;; custom keymap config | |
(global-set-key (kbd "C-\-") 'evilnc-comment-operator) | |
;; (nyan-mode) ; nyan bar :) | |
(require 'evil-nerd-commenter) | |
(evilnc-default-hotkeys) | |
;; surround | |
(require 'evil-surround) | |
(global-evil-surround-mode 1) | |
;; helm | |
(require 'helm-config) | |
(helm-mode 1) | |
;; Use tab for autocomplete search | |
(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action) | |
(setq helm-split-window-in-side-p t) | |
;; Show elm menu alway on bottom | |
(add-to-list 'display-buffer-alist | |
'("\\`\\*helm.*\\*\\'" | |
(display-buffer-in-side-window) | |
(inhibit-same-window . t) | |
(window-height . 0.4))) | |
(setq scroll-step 1 | |
scroll-conservatively 10000) | |
(setq helm-swoop-split-with-multiple-windows nil | |
helm-swoop-split-direction 'split-window-vertically | |
helm-swoop-split-window-function 'helm-default-display-buffer) | |
;; magit | |
(require 'evil-magit) | |
;; fonts | |
(set-default-font "Monaco 12") | |
;; neotree | |
(require 'neotree) | |
(global-set-key [f3] 'neotree-toggle) | |
(add-hook 'neotree-mode-hook | |
(lambda () | |
(evil-emacs-state))) | |
;; projectile | |
(projectile-global-mode) | |
;; use helm to show projectile completion results | |
(setq projectile-completion-system 'helm) | |
(defun custom-find-file-projectile () | |
(interactive) | |
(if (projectile-project-p) | |
(projectile-find-file) | |
(helm-for-files))) | |
;; Ignore extensions globally | |
;; (setq projectile-globally-ignored-file-suffixes '("*.png" "*.jpg" "*.pyc" "*.beam" "*.class")) | |
;; editorconfig | |
(require 'editorconfig) | |
;; Enable editorconfig globally | |
(editorconfig-mode 1) | |
;; Rust conf | |
(add-hook 'rust-mode-hook 'cargo-minor-mode) | |
;; Lisp conf | |
(require 'slime) | |
(slime-setup '(slime-repl)) | |
;; Compiler | |
(setq inferior-lisp-program "/usr/local/bin/sbcl") | |
;; elpy | |
(elpy-enable) | |
; (add-hook 'python-mode-hook 'jedi:setup) | |
(add-hook 'python-mode-hook | |
(lambda () | |
;; (jedi:setup) | |
(evil-leader/set-key "t" 'elpy-test))) | |
(when (require 'flycheck nil t) | |
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules)) | |
(add-hook 'elpy-mode-hook 'flycheck-mode)) | |
;; virtualenvwrapper | |
(require 'virtualenvwrapper) | |
(venv-initialize-interactive-shells) ;; if you want interactive shell support | |
(venv-initialize-eshell) ;; if you want eshell support | |
;; emmet | |
(require 'emmet-mode) | |
;; mode-line | |
;; (powerline-default-theme) | |
;; (setq powerline-default-separator 'wave) | |
;; web-mode | |
(require 'web-mode) | |
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) | |
(add-to-list 'auto-mode-alist '("\\.html.eex?\\'" . web-mode)) | |
(setq web-mode-enable-current-element-highlight t) | |
(setq web-mode-enable-current-column-highlight t) | |
(add-hook 'web-mode-hook 'emmet-mode) | |
;; (add-hook 'web-mode-hook (setq web-mode-engine-alist '(("django" . "\\.html\\'")))) | |
(require 'autopair) | |
(autopair-global-mode) | |
;; snippets | |
(require 'yasnippet) | |
(yas-global-mode 1) | |
;; use ESC key instead C-g to close and abort | |
(defun minibuffer-keyboard-quit () | |
"Abort recursive edit. | |
In Delete Selection mode, if the mark is active, just deactivate it; | |
then it takes a second \\[keyboard-quit] to abort the minibuffer." | |
(interactive) | |
(if (and delete-selection-mode transient-mark-mode mark-active) | |
(setq deactivate-mark t) | |
(when (get-buffer "*Completions*") (delete-windows-on "*Completions*")) | |
(abort-recursive-edit))) | |
(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) | |
(global-set-key [escape] 'evil-exit-emacs-state) | |
;; setup backups directory | |
(setq backup-directory-alist '(("." "~/.emacs.d/backups"))) | |
;; fix accents | |
(require 'iso-transl) | |
(setq make-backup-files nil) | |
;; Hide the fucking square in the center of screen | |
(setq ring-bell-function 'ignore) | |
; alchemist conf | |
(require 'elixir-mode) | |
(require 'alchemist) | |
;; (setq alchemist-mix-command "/usr/local/bin/mix") | |
;; (setq alchemist-execute-command "/usr/local/bin/elixir") | |
;; (setq alchemist-compile-command "/usr/local/bin/elixirc") | |
(setq alchemist-mix-env "dev") | |
(defun my-alchemist-config() | |
(local-set-key (kbd "C-c C-t") 'alchemist-mix-test-this-buffer)) | |
(add-hook 'alchemist-mode-hook 'my-alchemist-config) | |
;; org conf | |
;; Load twitter bootstrap styles | |
(eval-after-load "org" | |
'(require 'ox-twbs nil t)) | |
;; (require 'ox-reveal) | |
;; (defun my-org-config () | |
;; (interactive) | |
;; (setq org-reveal-root "file:///Users/erick/Code/org/reveal.js/")) | |
;; (add-hook 'org-mode-hook 'my-org-config) | |
;; (require 'ox-reveal) | |
;; load languages for org mode snippets | |
(org-babel-do-load-languages | |
'org-babel-load-languages | |
'((python . t) | |
(ruby . t) | |
(sh . t) | |
(lisp . t) | |
(emacs-lisp . t))) | |
;; Use emacs web browser with Dash dockets | |
(setq helm-dash-browser-func 'eww) | |
;; Consider _ as part of work like vim do | |
(modify-syntax-entry ?_ "w") | |
;; go to file | |
(require 's) | |
(defun django-find-template () | |
(interactive) | |
(save-excursion | |
(let ((beg (+ (search-backward-regexp "['\"]") 1)) | |
(end nil) | |
(file nil)) | |
(forward-char) | |
(search-forward-regexp "['\"]") | |
(setq end (- (point) 1)) | |
(kill-ring-save beg end) | |
(setq file (current-kill 0)) | |
(find-file (expand-file-name | |
(dolist (f (projectile-current-project-files)) | |
(if (s-contains? file f) | |
(return f))) (projectile-project-root)))))) | |
;; (define-key django-manage-map (kbd "C-x j") 'django-find-template) | |
;; toggle non english characters | |
(require 's) | |
(defun toggle-spanish-characters() | |
(interactive) | |
(if (eq ns-alternate-modifier 'meta) | |
(setq ns-alternate-modifier nil) | |
(setq ns-alternate-modifier 'meta))) | |
;; IRC conf | |
(require 'erc) | |
(erc-autojoin-mode t) | |
(setq erc-autojoin-channels-alist '((".*freenode.net" "#pyar" "#django-es" "emacs-es"))) | |
(setq erc-server "irc.freenode.net") | |
(setq erc-nick "erickgnavar") | |
(setq erc-hide-list '("JOIN" "PART" "QUIT" "NICK")) | |
(setq erc-fill-function 'erc-fill-static) | |
(setq erc-fill-static-center 22) | |
;; support for images | |
(require 'erc-image) | |
(add-to-list 'erc-modules 'image) | |
(erc-update-modules) | |
;; Manage text size | |
;; (global-set-key (kbd "M-=") 'text-scale-increase) | |
;; (global-set-key (kbd "M-\-") 'text-scale-decrease) | |
(defalias 'yes-or-no-p 'y-or-n-p) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment