Last active
July 24, 2019 17:55
-
-
Save asgartech/dfad53b56db3333e3dad12a191497220 to your computer and use it in GitHub Desktop.
My .emacs file. Makes heavy use of use-package. Lots of auto-completion using company and ido. Org and Markdown. Emmet mode for working with HTML and CSS. Magit and Projectile for projects.
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
;; Bootstraping "use-package" | |
(require 'package) | |
(setq package-enable-at-startup nil) | |
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) | |
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) | |
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/")) | |
(package-initialize) | |
(unless (package-installed-p 'use-package) | |
(package-refresh-contents) | |
(package-install 'use-package)) | |
(eval-when-compile | |
(require 'use-package)) | |
(setq use-package-always-ensure t) | |
(setq use-package-verbose t) | |
;; install auto-compile | |
(use-package auto-compile | |
:config | |
(auto-compile-on-load-mode) | |
(setq load-prefer-newer t)) | |
;; install better defaults | |
(use-package better-defaults | |
:ensure t) | |
;; install parchment theme | |
(use-package parchment-theme | |
:ensure t) | |
;; install company mode for auto-completion | |
(use-package company | |
:ensure company-dict | |
:ensure company-web | |
:init | |
(setq company-idle-delay 0.1) | |
(setq company-minimum-prefix-length 2)) | |
;; install ido-ubiquitous-mode | |
(use-package ido-completing-read+ | |
:ensure t | |
:config | |
(ido-mode 1) | |
(ido-everywhere 1) | |
(ido-ubiquitous-mode 1)) | |
;; install ido-yes-or-no mode | |
(use-package ido-yes-or-no | |
:ensure t | |
:config | |
(ido-yes-or-no-mode 1)) | |
;; install ido-vertical-mode | |
(use-package ido-vertical-mode | |
:ensure t | |
:ensure ido-yes-or-no | |
:config | |
(ido-vertical-mode 1) | |
(setq ido-vertical-define-keys 'C-n-and-C-p-only)) | |
;; install flx-ido for flex searching | |
(use-package flx-ido | |
:ensure t | |
:config | |
(flx-ido-mode 1) | |
(setq ido-enable-flex-matching t) | |
(setq ido-use-faces nil)) | |
;; install magit | |
(use-package magit | |
:ensure t | |
:config | |
(global-set-key (kbd "C-x g") 'magit-status)) | |
;; install smex | |
(use-package smex | |
:ensure t | |
:init | |
(smex-initialize) | |
:config | |
(global-set-key (kbd "M-x") 'smex) | |
(global-set-key (kbd "M-X") 'smex-major-mode-commands) | |
;; This is your old M-x. | |
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)) | |
;; install projectile | |
(use-package projectile | |
:ensure t | |
:init | |
(setq projectile-project-search-path '("~/Git/sr.ht/")) | |
:config | |
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) | |
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) | |
(projectile-mode 1)) | |
;; install windmove | |
(use-package windmove | |
:ensure t | |
:bind (("<f2> <right>" . windmove-right) | |
("<f2> <left>" . windmove-left) | |
("<f2> <up>" . windmove-up) | |
("<f2> <down>" . windmove-down))) | |
;; install emmet mode | |
(use-package emmet-mode | |
:ensure t | |
:init | |
(add-hook 'sgml-mode-hook 'emmet-mode) | |
(add-hook 'html-mode-hook 'emmet-mode) | |
(add-hook 'css-mode-hook 'emmet-mode) | |
(add-hook 'emmet-mode-hook 'flyspell-mode) | |
(add-hook 'emmet-mode-hook 'visual-line-mode)) | |
;; install markdown | |
(use-package markdown-mode | |
:ensure t | |
:init | |
(add-hook 'markdown-mode-hook 'flyspell-mode) | |
(add-hook 'markdown-mode-hook 'visual-line-mode) | |
(setq markdown-command "pandoc")) | |
;; install org mode | |
(use-package org | |
:ensure org-plus-contrib | |
:pin org | |
:init | |
(add-hook 'org-mode-hook 'org-indent-mode) | |
(add-hook 'org-mode-hook 'flyspell-mode) | |
(add-hook 'org-mode-hook 'visual-line-mode) | |
(setq org-startup-truncated nil) | |
(setq org-return-follows-link t) | |
(setq org-src-fontify-natively t) | |
(setq org-startup-indented t) | |
(setq org-completion-use-ido t) | |
:bind (("\C-c a" . org-agenda) | |
("\C-c c" . org-capture))) | |
;; install org bullets | |
(use-package org-bullets | |
:ensure t | |
:init | |
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) | |
(font-lock-add-keywords 'org-mode | |
'(("^ +\\([-*]\\) " | |
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•"))))))) | |
(use-package org-autolist | |
:ensure t | |
:init | |
(add-hook 'org-mode-hook (lambda () (org-autolist-mode 1)))) | |
(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. | |
'(add-to-list (quote auto-mode-alist) t) | |
'(column-number-mode 1) | |
'(custom-safe-themes (quote (default "parchment"))) | |
'(defalias (quote yes-or-no-p) t) | |
'(delete-selection-mode 1) | |
'(electric-pair-mode 1) | |
'(global-auto-revert-mode 1) | |
'(global-hl-line-mode 1) | |
'(global-subword-mode 1) | |
'(menu-bar-mode 1) | |
'(package-selected-packages | |
(quote | |
(auto-compile ido-yes-or-no ido-completing-read+ ido-vertical-mode ido-vertical magit emmet-mode company-abbrev company-dabbrev company-ispell org-plus-contrib parchment-theme company better-defaults use-package diminish))) | |
'(prefer-coding-system (quote utf-8)) | |
'(recentf-mode 1) | |
'(require (quote recentf)) | |
'(save-place-mode 1) | |
'(set-default-coding-systems (quote utf-8)) | |
'(set-language-environment "UTF-8") | |
'(setq gc-cons-threshold t) | |
'(show-paren-mode 1) | |
'(user-full-name "Matthew Graybosch") | |
'(user-mail-address "mgraybosch@fastmail.com")) | |
(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 :background "#ffffea" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :foundry "IBM " :family "IBM Plex Mono")))) | |
'(variable-pitch ((t (:family "IBM Plex Sans Regular"))))) | |
;; This didn't work inside custom-set-variables | |
(progn | |
(put 'narrow-to-region 'disabled nil) | |
(put 'narrow-to-page 'disabled nil) | |
(put 'upcase-region 'disabled nil) | |
(put 'downcase-region 'disabled nil) | |
(put 'erase-buffer 'disabled nil) | |
(put 'scroll-left 'disabled nil) | |
(put 'dired-find-alternate-file 'disabled nil)) | |
;; Let's pin some file types to modes. | |
(add-to-list 'auto-mode-alist '("\\.shtml\\'" . html-mode)) | |
(add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode)) | |
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) | |
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) | |
;; And some default hooks | |
(add-hook 'text-mode-hook 'flyspell-mode) | |
(add-hook 'text-mode-hook 'visual-line-mode) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment