-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot-emacs-sripathi
254 lines (201 loc) · 8.37 KB
/
dot-emacs-sripathi
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
;; Full Screen
;;(setenv "PATH" (concat (getenv "PATH") "/home/travula/racket/bin/"))
;;(setq exec-path (append exec-path '("/home/travula/racket/bin/")))
(setq debug-on-error 1)
(setq max-lisp-eval-depth 2000)
(setq max-specpdl-size 6000)
(require 'cl)
(setq url-proxy-services '(("http" . "proxy.iiit.ac.in:8080")
("https" . "proxy.iiit.ac.in:8080")))
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives
'("gnu" . "http://elpa.gnu.org/packages/") t)
(add-to-list 'package-archives
'("org" . "http://orgmode.org/elpa/") t)
;;(add-to-list 'package-archives
;; '("melpa-stable" . "https://stable.melpa.org/packages/") t)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
;; default to better frame titles
(setq frame-title-format
(concat "%b - emacs@" system-name))
;; Load Path
;; ---------
;;; ((list )of pathname?) -> void?
(defun add-to-load-path (entries)
(dolist (entry entries)
(add-to-list 'load-path entry)))
;;; Also highlight parens
(setq show-paren-delay 0
show-paren-style 'parenthesis)
(show-paren-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.
'(ansi-color-names-vector ["#2e3436" "#a40000" "#4e9a06" "#c4a000" "#204a87" "#5c3566" "#729fcf" "#eeeeec"])
'(column-number-mode t)
'(custom-enabled-themes (quote (wheatgrass)))
'(initial-frame-alist (quote ((fullscreen . maximized))))
'(quack-programs (quote ("mzscheme" "bigloo" "csi" "csi -hygienic" "gosh" "gracket" "gsi" "gsi ~~/syntax-case.scm -" "guile" "kawa" "mit-scheme" "racket" "racket -il typed/racket" "rs" "scheme" "scheme48" "scsh" "sisc" "stklos" "sxi")))
'(show-paren-mode t))
(setq font-string
; "-*-Courier-medium-r-normal-*-18-*-*-*-m-*-iso8859-1"
; "-*-Courier-medium-r-normal-*-24-*-*-*-m-*-iso8859-1"
; "-*-Courier-bold-r-normal-*-12-*-*-*-m-*-iso8859-1"
; "-*-Courier-bold-r-normal-*-18-*-*-*-m-*-iso8859-1" ; not defined
"-*-Courier-bold-r-normal-*-24-*-*-*-m-*-iso8859-1"
)
(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 (:family "DejaVu Sans Mono" :foundry "unknown" :slant normal :weight normal :height 158 :width normal)))))
;; Don't use TABS for indentations.
(setq-default indent-tabs-mode nil)
;; Set the number to the number of columns to use.
(setq-default fill-column 79)
;; Add Autofill mode to mode hooks.
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(add-hook 'org-mode-hook 'turn-on-auto-fill)
;; Show line number in the mode line.
(line-number-mode 1)
;; Show column number in the mode line.
(column-number-mode 1)
;;Enable syntax highlighting. This will also highlight lines that form a
;;region.
(require 'font-lock)
(global-font-lock-mode 1)
;;;;org-mode configuration
;; Enable org-mode
(require 'org)
;; Make org-mode work with files ending in .org
;; (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
;; The above is the default in recent emacsen
;;;Indentation is automatically added. When a tab is pressed it is replaced
;;;with 4 spaces. When backspace is pressed on an empty line, the cursor will
;;;jump to the previous indentation level.
(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
(setq interpreter-mode-alist
(cons '("python" . python-mode)
interpreter-mode-alist)
python-mode-hook
'(lambda () (progn
(set-variable 'py-indent-offset 4)
(set-variable 'indent-tabs-mode nil))))
;; Highlight character at "fill-column" position.
(require 'column-marker)
(set-face-background 'column-marker-1 "red")
(add-hook 'python-mode-hook
(lambda () (interactive)
(column-marker-1 fill-column)))
;;; setting up python with flycheck
;;; http://dreamrunner.org/wiki/public_html/Python/flycheck-pylint-emacs-with-python.html
(defun flycheck-python-setup ()
(flycheck-mode))
(add-hook 'python-mode-hook #'flycheck-python-setup)
;; Remove trailing whitespace manually by typing C-t C-w.
(add-hook 'python-mode-hook
(lambda ()
(local-set-key (kbd "C-t C-w")
'delete-trailing-whitespace)))
;; Automatically remove trailing whitespace when file is saved.
(add-hook 'python-mode-hook
(lambda()
(add-hook 'local-write-file-hooks
'(lambda()
(save-excursion
(delete-trailing-whitespace))))))
;; Use M-SPC (use ALT key) to make sure that words are separated by
;; just one space. Use C-x C-o to collapse a set of empty lines
;; around the cursor to one empty line. Useful for deleting all but
;; one blank line at end of file. To do this go to end of file (M->)
;; and type C-x C-o.
(setq org-src-preserve-indentation t)
(add-hook 'org-mode-hook
(lambda()
(flyspell-mode 1)))
(dolist (hook '(org-mode-hook))
(add-hook hook (lambda () (flyspell-mode 1))))
(add-hook 'js-mode-hook 'js2-minor-mode)
(add-hook 'js2-mode-hook 'ac-js2-mode)
(setq js2-highlight-level 3)
(setq js-indent-level 2)
;; auto complete for python
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:setup-keys t) ; optional
(setq jedi:complete-on-dot t) ; optional
;; open json files in js-mode
(add-to-list 'auto-mode-alist '("\\.json$" . js-mode))
;;yasnippet (https://truongtx.me/2013/01/06/config-yasnippet-and-autocomplete-on-emacs/)
(require 'yasnippet)
(yas-global-mode 1)
;;; auto complete mod
;;; should be loaded after yasnippet so that they can work together
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
(ac-config-default)
;;; set the trigger key so that it can work together with yasnippet on tab key,
;;; if the word exists in yasnippet, pressing tab will cause yasnippet to
;;; activate, otherwise, auto-complete will
(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")
(require 'quack)
(setq scheme-program-name "mzscheme")
(setq racket-racket-program "mzscheme")
(load-library "ox-reveal")
;;; dired
;;; =====
(add-hook 'dired-load-hook
(function
(lambda ()
(setq dired-copy-preserve-time t)
(setq dired-recursive-copies 'top)
(setq dired-dwim-target t) ;
; set dired-do-rename's
; default
; target to the
; other window
(define-key dired-mode-map "b" 'browse-url-of-dired-file)
(load "dired-x")
(define-key dired-mode-map "z" 'dired-remote-copy)
(define-key dired-mode-map "r" 'rsync-se-101)
(define-key dired-mode-map "T" 'dired-trash-files)
(define-key dired-mode-map "\C-ca" 'dired-acroread-file)
)))
;;; span
;;; for adding spans to elements
;;; Now you can type links such as:
;;; Check out this [[span:special][text block]].
;;; Which generates HTML output like:
;;; <p>Check out this <span class="special">text block</span>.</p>
;;; https://korewanetadesu.com/org-mode-spans.html
(defun jw/html-escape-attribute (value)
"Entity-escape VALUE and wrap it in quotes."
;; http://www.w3.org/TR/2009/WD-html5-20090212/serializing-html-fragments.html
;;
;; "Escaping a string... consists of replacing any occurrences of
;; the "&" character by the string "&", any occurrences of the
;; U+00A0 NO-BREAK SPACE character by the string " ", and, if
;; the algorithm was invoked in the attribute mode, any occurrences
;; of the """ character by the string """..."
(let* ((value (replace-regexp-in-string "&" "&" value))
(value (replace-regexp-in-string "\u00a0" " " value))
(value (replace-regexp-in-string "\"" """ value)))
value))
(eval-after-load "org"
'(org-add-link-type
"span" #'ignore ; not an 'openable' link
#'(lambda (class desc format)
(pcase format
(`html (format "<span class=\"%s\">%s</span>"
(jw/html-escape-attribute class)
(or desc "")))
(_ (or desc ""))))))