-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathemacs_init.el
135 lines (99 loc) · 3.52 KB
/
emacs_init.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
(setq-default custom-file
(expand-file-name ".custom.el" user-emacs-directory))
(when (file-exists-p custom-file)
(load custom-file))
(require 'package)
(setq-default
load-prefer-newer t
package-enable-at-startup nil)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(package-initialize)
;; Install dependencies
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package t))
(setq-default
use-package-always-defer t
use-package-always-ensure t)
(use-package unicode-fonts
:ensure t
:config
(unicode-fonts-setup))
;; sync PATH from env especially on OS X
(use-package exec-path-from-shell
:if (memq window-system '(mac ns x))
:ensure t
:config (exec-path-from-shell-initialize))
(use-package org :ensure org-plus-contrib)
(use-package magit)
(use-package json)
(use-package yaml-mode)
(use-package go-mode)
(use-package json-mode)
(use-package jq-mode)
(use-package markdown-mode)
(use-package blacken)
(use-package ansi-color)
(use-package mellow-theme)
(use-package material-theme)
(use-package ample-theme)
(use-package solarized-theme)
(use-package cycle-themes)
(use-package yasnippet
:config
(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
(yas-global-mode 1))
(when (memq window-system '(mac ns x))
(exec-path-from-shell-initialize))
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
(add-hook 'python-mode-hook
(lambda (&optional val) (turn-on-eldoc-mode)))
(add-hook 'python-mode-hook 'blacken-mode)
(dolist (hook '(text-mode-hook))
(add-hook hook (lambda () (flyspell-mode 1))))
;; (add-hook 'auto-save-hook 'org-save-all-org-buffers)
(add-hook 'markdown-mode-hook 'electric-quote-mode)
(add-hook 'markdown-mode-hook 'auto-fill-mode)
;;; Bind the path so that we don't pickup virtualenv binaries that may be set
(let ((exec-path '("~/.local/bin", "/opt/homebrew/bin", "/usr/local/bin")))
(setq blacken-executable (executable-find "black")))
;;; Bind the path so that we don't pickup virtualenv binaries that may be set
(let ((exec-path
'("/opt/homebrew/bin",
"/usr/local/bin",
(expand-file-name "~/.local/bin"))))
(setq blacken-executable (executable-find "black")))
(setq python-shell-completion-native-enable nil)
(quail-define-package
"Emoji" "UTF-8" "😎" t
"Emoji input mode for people that really, really like Emoji"
'(("\t" . quail-completion))
t t nil nil nil nil nil nil nil t)
(quail-define-rules
(":)" ?😀)
(":P" ?😋)
(":D" ?😂)
(":thumb:" ?👍))
(global-set-key (kbd "C-c g") 'goto-line)
(global-set-key (kbd "C-c m") 'manual-entry)
(global-set-key (kbd "C-c s") 'magit-status)
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
(global-set-key (kbd "C-c b") 'blacken-buffer)
(with-eval-after-load 'transient
(transient-bind-q-to-quit))
;; (setq insert-directory-program "gls" dired-use-ls-dired t)
;; (setq exec-path-from-shell-variables '())
(dolist (var '("SSH_AUTH_SOCK" "SSH_AGENT_PID" "GPG_AGENT_INFO" "LANG" "LC_CTYPE" "PYTHONUSERBASE"))
(add-to-list 'exec-path-from-shell-variables var))
(setq
insert-directory-program (or (executable-find "gls") (executable-find "ls"))
dired-use-ls-dired t)
(setq dired-listing-switches "-aBhlt --group-directories-first")
(load-theme 'material t)
(shell)
(switch-to-buffer "*shell*")