diff options
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | config/backups.el | 3 | ||||
-rw-r--r-- | config/common.el | 20 | ||||
-rw-r--r-- | config/editor.el | 85 | ||||
-rw-r--r-- | config/helm.el | 16 | ||||
-rw-r--r-- | config/keys.el | 1 | ||||
-rw-r--r-- | config/magit.el | 5 | ||||
-rw-r--r-- | config/packages.el | 17 | ||||
-rw-r--r-- | config/projectile.el | 14 | ||||
-rw-r--r-- | config/ui.el | 7 | ||||
-rw-r--r-- | emacs-custom.el | 27 | ||||
-rw-r--r-- | init.el | 12 |
12 files changed, 215 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0596670 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +savefile +eln-cache +elpa +auto-save-list +projectile-bookmarks.eld +recentf.eld +transient +tramp diff --git a/config/backups.el b/config/backups.el new file mode 100644 index 0000000..a48936e --- /dev/null +++ b/config/backups.el @@ -0,0 +1,3 @@ +;; -*- lexical-binding: t; -*- + +(setq backup-directory-alist '(("." . "~/.emacs.d/saves"))) diff --git a/config/common.el b/config/common.el new file mode 100644 index 0000000..cd874de --- /dev/null +++ b/config/common.el @@ -0,0 +1,20 @@ +;; -*- lexical-binding: t; -*- + +(setq + gc-cons-threshold 200000000 + make-backup-files nil + auto-save-default t + visible-bell t + inhibit-startup-screen t) + +(defalias 'yes-or-no-p 'y-or-n-p) + +(setq custom-file (expand-file-name "emacs-custom.el" user-emacs-directory)) +(when (file-exists-p custom-file) (load custom-file)) + +(use-package doom-modeline + :ensure t + :hook (after-init . doom-modeline-mode)) + +(use-package nerd-icons + :ensure t) diff --git a/config/editor.el b/config/editor.el new file mode 100644 index 0000000..0542f12 --- /dev/null +++ b/config/editor.el @@ -0,0 +1,85 @@ +;; -*- lexical-binding: t; -*- + +(setq-default indent-tabs-mode nil) ;; don't use tabs to indent +(setq-default tab-width 4) ;; but maintain correct appearance + +;; Newline at end of file +(setq require-final-newline t) + +;; delete the selection with a keypress +(delete-selection-mode t) + +(global-auto-revert-mode t) + +(global-hl-line-mode 1) + +;; meaningful names for buffers with the same name +(use-package uniquify + :config + (setq uniquify-buffer-name-style 'forward) + (setq uniquify-separator "/") + (setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified + (setq uniquify-ignore-buffers-re "^\\*")) ; don't muck with special buffers + +;; saveplace remembers your location in a file when saving files +(setq save-place-file (expand-file-name "saveplace" savefile-dir)) + +;; activate it for all buffers +(save-place-mode 1) + +;; savehist keeps track of some history +(use-package savehist + :config + (setq savehist-additional-variables + ;; search entries + '(search-ring regexp-search-ring) + ;; save every minute + savehist-autosave-interval 60 + ;; keep the home clean + savehist-file (expand-file-name "savehist" savefile-dir)) + (savehist-mode +1)) + + +;; smart tab behavior - indent or complete +(setq tab-always-indent 'complete) + +(use-package diminish :ensure t) + +(use-package smartparens + :ensure t + :config + (require 'smartparens-config) + (smartparens-global-mode t) + (show-smartparens-global-mode t) + (setq sp-base-key-bindings 'paredit) + (setq sp-autoskip-closing-pair 'always) + (setq sp-hybrid-kill-entire-symbol nil) + (setq blink-matching-paren nil)) + +(use-package easy-kill + :ensure t + :config + (global-set-key [remap kill-ring-save] 'easy-kill) + (global-set-key [remap mark-sexp] 'easy-mark)) + +(use-package whitespace-cleanup-mode + :ensure t + :config + (global-whitespace-cleanup-mode t)) + +(use-package whitespace + :config + (setq whitespace-line-column 80) ;; limit line length + (setq whitespace-style '(face tabs empty trailing lines-tail)) + (global-whitespace-mode t)) + +(use-package super-save + :ensure t + :config + (super-save-mode +1)) + +(use-package volatile-highlights + :ensure t + :diminish t + :config + (volatile-highlights-mode t)) diff --git a/config/helm.el b/config/helm.el new file mode 100644 index 0000000..b3f87aa --- /dev/null +++ b/config/helm.el @@ -0,0 +1,16 @@ +;; -*- lexical-binding: t; -*- +(use-package helm + :ensure t + :config + (global-set-key (kbd "M-x") 'helm-M-x) + (global-set-key (kbd "C-x C-m") 'helm-M-x) + (global-set-key (kbd "M-y") 'helm-show-kill-ring) + (global-set-key (kbd "C-x b") 'helm-mini) + (global-set-key (kbd "C-x C-b") 'helm-buffers-list) + (global-set-key (kbd "C-x C-f") 'helm-find-files) + (global-set-key (kbd "C-h f") 'helm-apropos) + (global-set-key (kbd "C-h r") 'helm-info-emacs) + (global-set-key (kbd "C-h C-l") 'helm-locate-library) + (helm-mode 1)) + +(use-package helm-ag :ensure t) diff --git a/config/keys.el b/config/keys.el new file mode 100644 index 0000000..2e0df35 --- /dev/null +++ b/config/keys.el @@ -0,0 +1 @@ +(keymap-global-set "C-d" `delete-region) diff --git a/config/magit.el b/config/magit.el new file mode 100644 index 0000000..18ba336 --- /dev/null +++ b/config/magit.el @@ -0,0 +1,5 @@ +;; -*- lexical-binding: t; -*- + +(use-package magit + :ensure t + :bind (("C-x g" . magit))) diff --git a/config/packages.el b/config/packages.el new file mode 100644 index 0000000..b4302cf --- /dev/null +++ b/config/packages.el @@ -0,0 +1,17 @@ +;; -*- lexical-binding: t; -*- + +(require 'package) + + +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) + +;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities` +;; and `package-pinned-packages`. Most users will not need or want to do this. +;; (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) + +(package-initialize) + +(require 'use-package) + +(use-package solarized-theme :ensure t) +(use-package ag :ensure t) diff --git a/config/projectile.el b/config/projectile.el new file mode 100644 index 0000000..2c34633 --- /dev/null +++ b/config/projectile.el @@ -0,0 +1,14 @@ +;; -*- lexical-binding: t; -*- +(use-package projectile + :ensure t + :init + (projectile-mode +1) + :bind + (:map projectile-mode-map + ("s-p" . projectile-command-map) + ("C-c p" . projectile-command-map))) + +(use-package helm-projectile + :ensure t + :config + (helm-projectile-on)) diff --git a/config/ui.el b/config/ui.el new file mode 100644 index 0000000..9cf1209 --- /dev/null +++ b/config/ui.el @@ -0,0 +1,7 @@ +;; -*- lexical-binding: t; -*- + +(scroll-bar-mode -1) +(tool-bar-mode -1) +(menu-bar-mode -1) + +(global-display-line-numbers-mode t) diff --git a/emacs-custom.el b/emacs-custom.el new file mode 100644 index 0000000..e14f31d --- /dev/null +++ b/emacs-custom.el @@ -0,0 +1,27 @@ +;;; -*- lexical-binding: t -*- +(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-enabled-themes '(solarized-dark)) + '(custom-safe-themes + '("833ddce3314a4e28411edf3c6efde468f6f2616fc31e17a62587d6a9255f4633" + "830877f4aab227556548dc0a28bf395d0abe0e3a0ab95455731c9ea5ab5fe4e1" + "51ec7bfa54adf5fff5d466248ea6431097f5a18224788d0bd7eb1257a4f7b773" + "2b0fcc7cc9be4c09ec5c75405260a85e41691abb1ee28d29fcd5521e4fca575b" + "7f1d414afda803f3244c6fb4c2c64bea44dac040ed3731ec9d75275b9e831fe5" + "b49f66a2e1724db880692485a5d5bcb9baf28ed2a3a05c7a799fa091f24321da" + "7fea145741b3ca719ae45e6533ad1f49b2a43bf199d9afaee5b6135fd9e6f9b8" + default)) + '(package-selected-packages + '(ag diminish doom-modeline easy-kill helm-ag helm-projectile magit + smartparens solarized-theme super-save volatile-highlights + whitespace-cleanup-mode))) + +(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 :extend nil :stipple nil :background "#002b36" :foreground "#839496" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight regular :height 115 :width normal :foundry "GOOG" :family "inconsolata"))))) @@ -0,0 +1,12 @@ +;; -*- lexical-binding: t; -*- + +(defvar savefile-dir (expand-file-name "savefile" user-emacs-directory) + "This folder stores all the automatically generated save/history-files.") + +(load "~/.emacs.d/config/ui") +(load "~/.emacs.d/config/packages") +(load "~/.emacs.d/config/editor") +(load "~/.emacs.d/config/common") +(load "~/.emacs.d/config/helm") +(load "~/.emacs.d/config/projectile") +(load "~/.emacs.d/config/magit") |