Skip to content

Instantly share code, notes, and snippets.

@rnagasam
Created June 18, 2018 20:36
Show Gist options
  • Save rnagasam/f87d6ec6f73b91a73eef86aa56c0525c to your computer and use it in GitHub Desktop.
Save rnagasam/f87d6ec6f73b91a73eef86aa56c0525c to your computer and use it in GitHub Desktop.
Emacs config
;;;; Emacs configuration file
;;;; Compile configuration file
(defun autocompile nil
"compile itself if ~/.emacs"
(interactive)
(require 'bytecomp)
(let ((dotemacs (file-truename user-init-file)))
(if (string= (buffer-file-name) (file-chase-links dotemacs))
(byte-compile-file dotemacs))))
(add-hook 'after-save-hook 'autocompile)
;;;; User details
(setq user-full-name "Ramana Nagasamudram"
user-mail-address "rnagasam@stevens.edu")
;;; Packages
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
;;;; General
(setq tab-width 2)
(defalias 'yes-or-no-p 'y-or-n-p)
(setq make-backup-files nil)
(tool-bar-mode -1)
(menu-bar-mode -1)
(toggle-scroll-bar -1)
(setq visual-bell 1)
(setq ring-bell-function 'ignore)
(show-paren-mode 1)
;; (setq show-paren-style 'expression)
(global-subword-mode 1) ; move through camelCase words
(setq column-number-mode nil)
;;;; Sudo Edit a file
(defun sudo-edit (&optional arg)
"Edit currently visited file as root
With a prefix ARG prompt for a file to visit
Will also prompt for a file to visit if current buffer
is not visiting a file."
(interactive "P")
(if (or arg (not buffer-file-name))
(find-file (concat "/sudo:root@localhost:"
(ido-read-file-name "Find file(as root): ")))
(find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))
(global-set-key (kbd "C-x C-r") 'sudo-edit)
;;;; Emacs Server
(load "server")
(unless (server-running-p) (server-start))
;;;; Dired
(defun dired-find-file-other-frame ()
"In Dired, visit this file or directory in another window."
(interactive)
(find-file-other-frame (dired-get-file-for-visit)))
(eval-after-load "dired"
'(define-key dired-mode-map "F" 'dired-find-file-other-frame))
;;;; Mutt
;; (server-start)
(add-to-list 'auto-mode-alist '("/mutt" . mail-mode))
;;;; Autopair
(require 'autopair)
;;;; Prettify Symbols
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
(global-prettify-symbols-mode)
(setq prettify-symbols-alist
'(
("lambda" . 955) ; λ
))
;;;; Aggressive Indent
;; (global-aggressive-indent-mode 1)
;;;; Aggressive Fill Paragraph
;; (afp-setup-recommended-hooks)
;;;; Multiple cursors
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
;;;; Speedbar
(require 'speedbar)
(setq speedbar-show-unknown-files t)
;;;; Comint Clear
(global-set-key (kbd "C-c M-o") 'comint-clear-buffer)
;;;; Flyspell -- built-in Emacs spell checker
(require 'flyspell)
(setq flyspell-issue-welcome-flag nil)
(setq-default ispell-program-name "/usr/bin/aspell")
(setq-default ispell-list-command "list")
;;;; Pianobar
(autoload 'pianobar "pianobar" nil t)
;;;; PDF Tools
(pdf-tools-install)
;;;; Octave
(require 'ac-octave)
(add-hook 'octave-mode-hook
'(lambda () (ac-octave-setup)))
;;;; Maxima
(autoload 'imaxima "imaxima" "Frontend of Maxima CAS" t)
(autoload 'imath "imath" "Interactive Math Mode" t)
(autoload 'imath-mode "imath" "Interactive Math Mode" t)
(setq imaxima-fnt-size "Large")
;;;; Geiser
;; (require 'geiser)
;; (setq geiser-active-implementations '(mit))
;;;; SLIME
(require 'slime)
(setq inferior-lisp-program "/usr/bin/sbcl")
(setq slime-contribs '(slime-fancy slime-company))
(load (expand-file-name "~/quicklisp/slime-helper.el")) ;; quicklisp slime helper
;;; SLIME company
(slime-setup '(slime-company))
;;; SLIME Autocomplete
;; (require 'ac-slime)
;; (add-hook 'slime-mode-hook 'set-up-slime-ac)
;; (add-hook 'slime-repl-mode-hook 'set-up-slime-ac)
;; (eval-after-load "auto-complete"
;; '(add-to-list 'ac-modes 'slime-repl-mode))
;;;; Ace Popup
(ace-popup-menu-mode 1)
;;;; Window settings
;;; resizing
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
(global-set-key (kbd "S-C-<down>") 'shrink-window)
;;; switching -- using ace-window now
(defun prev-window ()
(interactive)
(other-window -1))
(global-set-key (kbd "C-,") 'other-window)
(global-set-key (kbd "C-.") 'prev-window)
;;; Ace-window
(require 'ace-window)
(global-set-key (kbd "M-o") 'ace-window)
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))
(ace-window-display-mode t)
;; (setq aw-background nil)
;; (setq aw-dispatch-always t)
;;; winner mode -- restore windows
(winner-mode 1)
(global-set-key (kbd "C-c c ,") 'winner-undo)
(global-set-key (kbd "C-c c .") 'winner-redo)
;;;; Info
(require 'info)
;;;; auto-complete
;; (require 'auto-complete)
;; (require 'auto-complete-config)
;; (ac-config-default)
;; (require 'ac-math)
;; (global-auto-complete-mode t)
;; hack to get auto-complete everywhere
;; https://stackoverflow.com/questions/8095715/emacs-auto-complete-mode-at-startup
;; (defun auto-complete-mode-maybe ()
;; "No maybe for you. Only AC!"
;; (unless (minibufferp (current-buffer))
;; (auto-complete-mode 1)))
;; Add ac-source-filename to ac-sources of all buffers
;; (defun ac-common-setup ()
;; (setq ac-sources (append '(ac-source-filename) ac-sources)))
;;;; Company mode
(add-hook 'after-init-hook 'global-company-mode)
(add-to-list 'company-backends 'company-shell)
(add-to-list 'company-backends 'company-math)
(add-to-list 'company-backends 'company-files)
(add-to-list 'company-backends 'company-irony-c-headers)
(add-to-list 'company-backends 'company-irony)
(add-to-list 'company-backends 'company-ghc)
(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-faces-vector
[default default default italic underline success warning error])
'(ansi-color-names-vector
["#242424" "#e5786d" "#95e454" "#cae682" "#8ac6f2" "#333366" "#ccaa8f" "#f6f3e8"])
'(ansi-term-color-vector
[unspecified "#f1efee" "#f22c40" "#7b9726" "#c38418" "#407ee7" "#6666ea" "#407ee7" "#68615e"] t)
'(background-color nil)
'(background-mode dark)
'(beacon-color "#d54e53")
'(company-ghc-show-info t)
'(cursor-color nil)
'(custom-enabled-themes nil)
'(custom-safe-themes
(quote
("c5a886cc9044d8e6690a60f33db45506221aa0777a82ad1f7fe11a96d203fa44" "cb39485fd94dabefc5f2b729b963cbd0bac9461000c57eae454131ed4954a8ac" "d9e811d5a12dec79289c5bacaecd8ae393d168e9a92a659542c2a9bab6102041" "57d7e8b7b7e0a22dc07357f0c30d18b33ffcbb7bcd9013ab2c9f70748cfa4838" "63aff36a40f41b28b0265ac506faa098fd552fac0a1813b745ba7c27efa5a943" "780c67d3b58b524aa485a146ad9e837051918b722fd32fd1b7e50ec36d413e70" "a11043406c7c4233bfd66498e83600f4109c83420714a2bd0cd131f81cbbacea" "b4fd44f653c69fb95d3f34f071b223ae705bb691fb9abaf2ffca3351e92aa374" "09feeb867d1ca5c1a33050d857ad6a5d62ad888f4b9136ec42002d6cdf310235" "a513bb141af8ece2400daf32251d7afa7813b3a463072020bb14c82fd3a5fe30" "9bd5ee2b24759fbc97f86c2783d1bf8f883eb1c0dd2cf7bda2b539cd28abf6a9" "392f19e7788de27faf128a6f56325123c47205f477da227baf6a6a918f73b5dc" "7bd626fcc9fbfb44186cf3f08b8055d5a15e748d5338e47f9391d459586e20db" "be5b03913a1aaa3709d731e1fcfd4f162db6ca512df9196c8d4693538fa50b86" "a455366c5cdacebd8adaa99d50e37430b0170326e7640a688e9d9ad406e2edfd" "d8a7a7d2cffbc55ec5efbeb5d14a5477f588ee18c5cddd7560918f9674032727" "72c530c9c8f3561b5ab3bf5cda948cd917de23f48d9825b7a781fe1c0d737f2f" "fb09acc5f09e521581487697c75b71414830b1b0a2405c16a9ece41b2ae64222" "0e8c264f24f11501d3f0cabcd05e5f9811213f07149e4904ed751ffdcdc44739" "a02c000c95c43a57fe1ed57b172b314465bd11085faf6152d151385065e0e4b1" "cdc2a7ba4ecf0910f13ba207cce7080b58d9ed2234032113b8846a4e44597e41" "e26e879d250140e0d4c4d5ab457c32bcb29742599bd28c1ce31301344c6f2a11" "deb7ae3a735635a85c984ece4ce70317268df6027286998b0ea3d10f00764c9b" "0973b33d2f15e6eaf88400eee3dc8357ad8ae83d2ca43c125339b25850773a70" "abd7719fd9255fcd64f631664390e2eb89768a290ee082a9f0520c5f12a660a8" "1127f29b2e4e4324fe170038cbd5d0d713124588a93941b38e6295a58a48b24f" "b71da830ae97a9b70d14348781494b6c1099dbbb9b1f51494c3dfa5097729736" "ff8c6c2eb94e776c9eed9299a49e07e70e1b6a6f926dec429b99cf5d1ddca62a" "701b4b4e7989329a0704b92fc17e6600cc18f9df4f2466617ec91c932b5477eb" "4e7e04c4b161dd04dc671fb5288e3cc772d9086345cb03b7f5ed8538905e8e27" "6a674ffa24341f2f129793923d0b5f26d59a8891edd7d9330a258b58e767778a" "5e402ccb94e32d7d09e300fb07a62dc0094bb2f16cd2ab8847b94b01b9d5e866" "ff6a8955945028387ed1a2b0338580274609fbb0d40cd011b98ca06bd00d9233" "daeaa8249f0c275de9e32ed822e82ff40457dabe07347fe06afc67d962a3b1e9" "b48599e24e6db1ea612061252e71abc2c05c05ac4b6ad532ad99ee085c7961a7" "c51e302edfe6d2effca9f7c9a8a8cfc432727efcf86246002a3b45e290306c1f" "d422c7673d74d1e093397288d2e02c799340c5dabf70e87558b8e8faa3f83a6c" "cc2f32f5ee19cbd7c139fc821ec653804fcab5fcbf140723752156dc23cdb89f" "a5a2954608aac5c4dcf9659c07132eaf0da25a8f298498a7eacf97e2adb71765" "68b847fac07094724e552eeaf96fa4c7e20824ed5f3f225cad871b8609d50ace" "1c10e946f9a22b28613196e4c02b6508970e3b34660282ec92d9a1c293ee81bb" "80a23d559a5c5343a0882664733fd2c9e039b4dbf398c70c424c8d6858b39fc5" "1342a81078bdac27f80b86807b19cb27addc1f9e4c6a637a505ae3ba4699f777" "44f5578eccb2cde3b196dfa86a298b75fe39ceff975110c091fa8c874c338b50" "2ea9afebc23cca3cd0cd39943b8297ce059e31cb62302568b8fa5c25a22db5bc" "f19d195fa336e9904303eea20aad35036b79cfde72fa6e76b7462706acd52920" "bce1c321471d37b875f99c83cb7b451fd8386001259e1c0909d6e078ea60f00b" "45482e7ddf47ab1f30fe05f75e5f2d2118635f5797687e88571842ff6f18b4d5" "938f120eeda938eef2c36b4cc9609d1ad91b3a3666cd63a4be5b70b739004942" "53de65a1e7300e0f1a4f8bf317530a5008e9d06a0e2f8863b80dc56d77f844cf" "a621dd9749f2651e357a61f8d8d2d16fb6cacde3b3784d02151952e1b9781f05" "1a2cde373eff9ffd5679957c7ecfc6249d353e1ee446d104459e73e924fe0d8a" "880f541eabc8c272d88e6a1d8917fe743552f17cedd8f138fe85987ee036ad08" "76935a29af65f8c915b1b3b4f6326e2e8d514ca098bd7db65b0caa533979fc01" "62a6731c3400093b092b3837cff1cb7d727a7f53059133f42fcc57846cfa0350" "0f302165235625ca5a827ac2f963c102a635f27879637d9021c04d845a32c568" "2047464bf6781156ebdac9e38a17b97bd2594b39cfeaab561afffcbbe19314e2" "aae40caa1c4f1662f7cae1ebfbcbb5aa8cf53558c81f5bc15baefaa2d8da0241" "aaf783d4bfae32af3e87102c456fba8a85b79f6e586f9911795ea79055dee3bf" "9d9b2cf2ced850aad6eda58e247cf66da2912e0722302aaa4894274e0ea9f894" "ec0c9d1715065a594af90e19e596e737c7b2cdaa18eb1b71baf7ef696adbefb0" "5c5de678730ceb4e05794431dd65f30ffe9f1ed6c016fa766cdf909ba03e4df4" "b6f06081b007b57be61b82fb53f27315e2cf38fa690be50d6d63d2b62a408636" "995d0754b79c4940d82bd430d7ebecca701a08631ec46ddcd2c9557059758d33" "70b2d5330a8dd506accac4b51aaa7e43039503d000852d7d152aec2ce779d96d" "011d4421eedbf1a871d1a1b3a4d61f4d0a2be516d4c94e111dfbdc121da0b043" "28818b9b1d9e58c4fb90825a1b07b0f38286a7d60bf0499bc2dea7eea7e36782" "cb30d82b05359203c8378638dec5ad6e37333ccdda9dee8b9fdf0c902e83fad7" "6b4f7bde1ce64ea4604819fe56ff12cda2a8c803703b677fdfdb603e8b1f8bcb" "01e0367d8c3249928a2e0ebc9807b2f791f81a0d2a7c8656e1fbf4b1dbaa404c" "6291d73aaeb6a3d7e455d85ca3865260a87afe5f492b6d0e2e391af2d3ea81dd" "6c0d748fb584ec4c8a0a1c05ce1ae8cde46faff5587e6de1cc59d3fc6618e164" "335ad769bcd7949d372879ec10105245255beec6e62213213835651e2eb0b8e0" "4bcdfc98cf64ce6145684dc8288fd87489cfa839e07f95f6c791d407624d04f8" "31772cd378fd8267d6427cec2d02d599eee14a1b60e9b2b894dd5487bd30978e" "8e7044bfad5a2e70dfc4671337a4f772ee1b41c5677b8318f17f046faa42b16b" "b5cff93c3c6ed12d09ce827231b0f5d4925cfda018c9dcf93a2517ce3739e7f1" "3ed2e1653742e5059e3d77af013ee90c1c1b776d83ec33e1a9ead556c19c694b" "5f4dfda04fbf7fd55228266c8aab73953d3087cea7fd06dd7f8ff1e4a497c739" "2ae4b0c50dd49a5f74edeae3e49965bf8853954b63c5712a7967ea0a008ecd5b" "1f126eb4a1e5d6b96b3faf494c8c490f1d1e5ad4fc5a1ce120034fe140e77b88" "fe349b21bb978bb1f1f2db05bc87b2c6d02f1a7fe3f27584cd7b6fbf8e53391a" "aad7fd3672aad03901bf91e338cd530b87efc2162697a6bef79d7f8281fd97e3" "fc1137ae841a32f8be689e0cfa07c872df252d48426a47f70dba65f5b0f88ac4" "0ca71d3462db28ebdef0529995c2d0fdb90650c8e31631e92b9f02bd1bfc5f36" "9a3c51c59edfefd53e5de64c9da248c24b628d4e78cc808611abd15b3e58858f" "9dc64d345811d74b5cd0dac92e5717e1016573417b23811b2c37bb985da41da2" "6cf0e8d082a890e94e4423fc9e222beefdbacee6210602524b7c84d207a5dfb5" "f831c1716ebc909abe3c851569a402782b01074e665a4c140e3e52214f7504a0" "11e5e95bd3964c7eda94d141e85ad08776fbdac15c99094f14a0531f31a156da" "595099e6f4a036d71de7e1512656e9375dd72cf60ff69a5f6d14f0171f1de9c1" "ed92c27d2d086496b232617213a4e4a28110bdc0730a9457edf74f81b782c5cf" "5eb4b22e97ddb2db9ecce7d983fa45eb8367447f151c7e1b033af27820f43760" "b8c5adfc0230bd8e8d73450c2cd4044ad7ba1d24458e37b6dec65607fc392980" "4c8372c68b3eab14516b6ab8233de2f9e0ecac01aaa859e547f902d27310c0c3" "8530b2f7b281ea6f263be265dd8c75b502ecd7a30b9a0f28fa9398739e833a35" "1a094b79734450a146b0c43afb6c669045d7a8a5c28bc0210aba28d36f85d86f" "05d009b7979e3887c917ef6796978d1c3bbe617e6aa791db38f05be713da0ba0" "db510eb70cf96e3dbd48f5d24de12b03db30674ea0853f06074d4ccf7403d7d3" "6e03b7f86fcca5ce4e63cda5cd0da592973e30b5c5edf198eddf51db7a12b832" "67b11ee5d10f1b5f7638035d1a38f77bca5797b5f5b21d16a20b5f0452cbeb46" "3fe4861111710e42230627f38ebb8f966391eadefb8b809f4bfb8340a4e85529" "5c83b15581cb7274085ba9e486933062652091b389f4080e94e4e9661eaab1aa" "77515a438dc348e9d32310c070bfdddc5605efc83671a159b223e89044e4c4f1" "0c5204945ca5cdf119390fe7f0b375e8d921e92076b416f6615bbe1bd5d80c88" "39a854967792547c704cbff8ad4f97429f77dfcf7b3b4d2a62679ecd34b608da" "2d5c40e709543f156d3dee750cd9ac580a20a371f1b1e1e3ecbef2b895cf0cd2" "da8e6e5b286cbcec4a1a99f273a466de34763eefd0e84a41c71543b16cd2efac" "8bb8a5b27776c39b3c7bf9da1e711ac794e4dc9d43e32a075d8aa72d6b5b3f59" "38e66a2a20fa9a27af5ffc4f4dd54f69e3fef6b51be7b351e137b24958bfebd7" "4980e5ddaae985e4bae004280bd343721271ebb28f22b3e3b2427443e748cd3f" "17cda1304ba8d26d62bf247cab2c161d12957054b6be4477abb5972a74eea4e1" "06f0b439b62164c6f8f84fdda32b62fb50b6d00e8b01c2208e55543a6337433a" "628278136f88aa1a151bb2d6c8a86bf2b7631fbea5f0f76cba2a0079cd910f7d" "bb08c73af94ee74453c90422485b29e5643b73b05e8de029a6909af6a3fb3f58" "1b8d67b43ff1723960eb5e0cba512a2c7a2ad544ddb2533a90101fd1852b426e" "82d2cac368ccdec2fcc7573f24c3f79654b78bf133096f9b40c20d97ec1d8016" "7153b82e50b6f7452b4519097f880d968a6eaf6f6ef38cc45a144958e553fbc6" "5e3fc08bcadce4c6785fc49be686a4a82a356db569f55d411258984e952f194a" "a0feb1322de9e26a4d209d1cfa236deaf64662bb604fa513cca6a057ddf0ef64" "ab04c00a7e48ad784b52f34aa6bfa1e80d0c3fcacc50e1189af3651013eb0d58" "04dd0236a367865e591927a3810f178e8d33c372ad5bfef48b5ce90d4b476481" "7356632cebc6a11a87bc5fcffaa49bae528026a78637acd03cae57c091afd9b9" "6ffef0161169e444b514a0f7f0cb7eac09d11c396cdc99bf85360a361c427886" default)))
'(diary-entry-marker (quote font-lock-variable-name-face))
'(ecb-options-version "2.50")
'(ecb-source-path (quote (("/" "/"))))
'(electric-pair-mode t)
'(elpy-modules
(quote
(elpy-module-company elpy-module-eldoc elpy-module-flymake elpy-module-pyvenv elpy-module-yasnippet elpy-module-django elpy-module-sane-defaults)))
'(emms-mode-line-icon-image-cache
(quote
(image :type xpm :ascent center :data "/* XPM */
static char *note[] = {
/* width height num_colors chars_per_pixel */
\" 10 11 2 1\",
/* colors */
\". c #1fb3b3\",
\"# c None s None\",
/* pixels */
\"###...####\",
\"###.#...##\",
\"###.###...\",
\"###.#####.\",
\"###.#####.\",
\"#...#####.\",
\"....#####.\",
\"#..######.\",
\"#######...\",
\"######....\",
\"#######..#\" };")))
'(evil-emacs-state-cursor (quote ("#D50000" hbar)) t)
'(evil-insert-state-cursor (quote ("#D50000" bar)) t)
'(evil-normal-state-cursor (quote ("#F57F17" box)) t)
'(evil-visual-state-cursor (quote ("#66BB6A" box)) t)
'(fci-rule-character-color "#192028")
'(fci-rule-color "#14151E")
'(flycheck-color-mode-line-face-to-color (quote mode-line-buffer-id))
'(foreground-color nil)
'(frame-background-mode nil)
'(fringe-mode 10 nil (fringe))
'(gnus-logo-colors (quote ("#528d8d" "#c0c0c0")))
'(gnus-mode-line-image-cache
(quote
(image :type xpm :ascent center :data "/* XPM */
static char *gnus-pointer[] = {
/* width height num_colors chars_per_pixel */
\" 18 13 2 1\",
/* colors */
\". c #1fb3b3\",
\"# c None s None\",
/* pixels */
\"##################\",
\"######..##..######\",
\"#####........#####\",
\"#.##.##..##...####\",
\"#...####.###...##.\",
\"#..###.######.....\",
\"#####.########...#\",
\"###########.######\",
\"####.###.#..######\",
\"######..###.######\",
\"###....####.######\",
\"###..######.######\",
\"###########.######\" };")))
'(haskell-enable-company-mode t)
'(haskell-process-auto-import-loaded-modules t)
'(haskell-process-log t)
'(haskell-process-suggest-remove-import-lines t)
'(haskell-process-type (quote cabal-repl))
'(haskell-tags-on-save t)
'(highlight-indent-guides-auto-enabled nil)
'(highlight-symbol-colors
(quote
("#F57F17" "#66BB6A" "#0097A7" "#42A5F5" "#7E57C2" "#D84315")))
'(highlight-symbol-foreground-color "#546E7A")
'(highlight-tail-colors (quote (("#F8BBD0" . 0) ("#FAFAFA" . 100))))
'(hl-paren-background-colors (quote ("#2492db" "#95a5a6" nil)))
'(hl-paren-colors (quote ("#ecf0f1" "#ecf0f1" "#c0392b")))
'(jdee-db-active-breakpoint-face-colors (cons "#0d0d0d" "#41728e"))
'(jdee-db-requested-breakpoint-face-colors (cons "#0d0d0d" "#b5bd68"))
'(jdee-db-spec-breakpoint-face-colors (cons "#0d0d0d" "#5a5b5a"))
'(linum-format " %6d ")
'(main-line-color1 "#222232")
'(main-line-color2 "#333343")
'(notmuch-search-line-faces
(quote
(("unread" :foreground "#aeee00")
("flagged" :foreground "#0a9dff")
("deleted" :foreground "#ff2c4b" :bold t))))
'(nrepl-message-colors
(quote
("#183691" "#888a88" "#539100" "#888a88" "#0086b3" "#183691" "#539100" "#888a88")))
'(org-file-apps
(quote
((auto-mode . emacs)
("\\.mm\\'" . default)
("\\.x?html?\\'" . default)
("\\.pdf\\'" . "xdg-open %s"))))
'(org-src-block-faces (quote (("emacs-lisp" (:background "#F0FFF0")))))
'(package-selected-packages
(quote
(shm mmm-mode hindent tiny company-irony-c-headers company-c-headers ggtags helm-gtags flycheck-irony hydandata-light-theme magithub helm-github-stars helm-flycheck nim-mode org-bullets discover typo swiper-helm tabbar auctex evil-magit evil-cleverparens evil-tutor pretty-mode ein conda company-shell company-math company-jedi slime-company color-theme-modern sourcerer-theme goose-theme counsel ivy lispy cider ac-slime noctilux-theme organic-green-theme color-theme-sanityinc-tomorrow pianobar alect-themes slime termbright-theme evil nodejs-repl tern tern-auto-complete tern-context-coloring js2-mode jedi elpy eldoc-overlay multiple-cursors ac-octave speed-type ido-describe-bindings flx-ido pdf-tools shell-pop aggressive-indent ace-popup-menu org-ac define-word idomenu ecb matlab-mode ace-window haskell-mode flycheck writegood-mode autopair ido-at-point smex ido-yes-or-no ido-sort-mtime yasnippet-snippets yasnippet ac-geiser ac-helm ac-math geiser racket-mode helm-projectile projectile paredit sml-mode helm sicp magit bind-key auto-complete)))
'(pdf-view-midnight-colors (quote ("#eeeeee" . "#000000")))
'(pos-tip-background-color "#1A3734")
'(pos-tip-foreground-color "#FFFFC8")
'(powerline-color1 "#222232")
'(powerline-color2 "#333343")
'(red "#ffffff")
'(shell-pop-shell-type
(quote
("terminal" "*terminal*"
(lambda nil
(term shell-pop-term-shell)))))
'(show-paren-mode t)
'(sml/active-background-color "#34495e")
'(sml/active-foreground-color "#ecf0f1")
'(sml/inactive-background-color "#dfe4ea")
'(sml/inactive-foreground-color "#34495e")
'(tabbar-background-color "#ffffff")
'(tool-bar-mode nil)
'(vc-annotate-background nil)
'(vc-annotate-color-map
(quote
((20 . "#d54e53")
(40 . "goldenrod")
(60 . "#e7c547")
(80 . "DarkOliveGreen3")
(100 . "#70c0b1")
(120 . "DeepSkyBlue1")
(140 . "#c397d8")
(160 . "#d54e53")
(180 . "goldenrod")
(200 . "#e7c547")
(220 . "DarkOliveGreen3")
(240 . "#70c0b1")
(260 . "DeepSkyBlue1")
(280 . "#c397d8")
(300 . "#d54e53")
(320 . "goldenrod")
(340 . "#e7c547")
(360 . "DarkOliveGreen3"))))
'(vc-annotate-very-old-color nil))
(setq company-show-numbers t)
(let ((map company-active-map))
(mapc
(lambda (x)
(define-key map (format "%d" x) 'ora-company-number))
(number-sequence 0 9))
(define-key map " " (lambda ()
(interactive)
(company-abort)
(self-insert-command 1)))
(define-key map (kbd "<return>") nil))
(defun ora-company-number ()
"Forward to `company-complete-number'.
Unless the number is potentially part of the candidate.
In that case, insert the number."
(interactive)
(let* ((k (this-command-keys))
(re (concat "^" company-prefix k)))
(if (cl-find-if (lambda (s) (string-match re s))
company-candidates)
(self-insert-command 1)
(company-complete-number (string-to-number k)))))
;; (define-key c-mode-map [(tab)] 'company-complete)
;; (define-key c++-mode-map [(tab)] 'company-complete)
;; (require 'color)
;; (let ((bg (face-attribute 'default :background)))
;; (custom-set-faces
;; `(company-tooltip ((t (:inherit defualt :background ,(color-lighten-name bg 2)))))
;; `(company-scrollbar-bg ((t (:background ,(color-lighten-name bg 10)))))
;; `(company-scrollbar-fg ((t (:background ,(color-lighten-name bg 5)))))
;; `(company-tooltip-selection ((t (:inherit font-lock-function-name-face))))
;; `(company-tooltip-common ((t (:inherit font-lock-constant-face))))))
;;;; Beacon mode
;; (beacon-mode 1)
;;;; Paredit
(autoload 'enable-paredit-mode "paredit" "Tun on pseudo-structural editing of Lisp code." t)
;; (add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode)
;; (add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode)
;; (add-hook 'ielm-mode-hook #'enable-paredit-mode)
;; (add-hook 'lisp-mode-hook #'enable-paredit-mode)
;; (add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode)
;; (add-hook 'scheme-mode-hook #'enable-paredit-mode)
;;;; Lispy Mode
(add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1)))
(add-hook 'eval-expression-minibuffer-setup-hook (lambda () (lispy-mode 1)))
(add-hook 'ielm-mode-hook (lambda () (lispy-mode 1)))
(add-hook 'lisp-mode-hook (lambda () (lispy-mode 1)))
(add-hook 'lisp-interaction-mode-hook (lambda () (lispy-mode 1)))
(add-hook 'scheme-mode-hook (lambda () (lispy-mode 1)))
(eval-after-load "lispy"
`(progn
(define-key lispy-mode-map (kbd "M-o") nil)))
;;;; Yasnippet
(yas-global-mode 1)
;;;; Tiny
(global-set-key (kbd "C-;") #'tiny-expand)
;;;; Projectile
;; (projectile-global-mode)
;; (setq projectile-enable-caching t)
;;;; Ido Mode
;; (require 'ido)
;; (require 'flx-ido)
;; (setq ido-enable-flex-matching t)
;; (setq ido-use-virtual-buffers t)
;; (setq ido-everywhere t)
;; (setq ido-use-filename-at-point 'guess)
;; (setq ido-use-url-at-point t)
;; (setq ido-create-new-buffer 'always)
;; (setq ido-case-fold t)
;; (require 'ido-at-point)
;; (ido-at-point-mode)
;; (ido-mode 1)
;; (autoload 'idomenu "idomenu" nil t)
;; ;; disable ido faces to see flx highlights
;; (setq ido-use-faces nil)
;;;; Smex
;; (require 'smex)
;; (setq smex-save-file (expand-file-name ".smex-items" user-emacs-directory))
;; (smex-initialize)
;; (global-set-key (kbd "M-x") 'smex)
;; (global-set-key (kbd "M-X") 'smex-major-mode-commands)
;; ;; old M-x
;; (global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)
;; ;; make space insert hyphen
;; (defadvice smex (around space-inserts-hyphen activate compile)
;; (let ((ido-cannot-complete-command
;; `(lambda ()
;; (interactive)
;; (if (string= " " (this-command-keys))
;; (insert ?-)
;; (funcall ,ido-cannot-complete-command)))))
;; ad-do-it))
;;;; Ivy
;; (ivy-mode 1)
;; (setq ivy-use-virtual-buffers t)
;; (setq enable-recursive-minibuffers t)
;; (global-set-key "\C-s" 'swiper)
;; (global-set-key (kbd "<f6>") 'ivy-resume)
;; (global-set-key (kbd "M-x") 'counsel-M-x)
;; (global-set-key (kbd "C-x C-f") 'counsel-find-file)
;; (global-set-key (kbd "<f1> f") 'counsel-describe-function)
;; (global-set-key (kbd "<f1> v") 'counsel-describe-variable)
;; (global-set-key (kbd "<f1> l") 'counsel-find-library)
;; (global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
;; (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
;; (global-set-key (kbd "C-c g") 'counsel-git)
;; (global-set-key (kbd "C-c j") 'counsel-git-grep)
;; (global-set-key (kbd "C-x l") 'counsel-locate)
;; (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history)
;; (setq ivy-display-style 'fancy)
;;;; Helm mode
(require 'helm)
(require 'helm-config)
(require 'helm-projectile)
(global-set-key (kbd "C-c h") 'helm-command-prefix)
(global-unset-key (kbd "C-x c"))
(setq helm-split-window-inside-p t ; open helm buffer inside current window
helm-move-to-line-cycle-in-source t
helm-echo-input-in-header-line t
helm-ff-file-name-history-use-recentf t
helm-echo-input-in-header-line t)
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x r b") 'helm-filtered-bookmarks)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
(global-set-key (kbd "C-x b") 'helm-mini)
(global-set-key (kbd "C-x C-b") 'helm-buffers-list)
(global-set-key (kbd "M-y") 'helm-show-kill-ring)
;; (global-set-key (kbd "C-c h o") 'helm-occur)
(global-set-key (kbd "C-s") 'helm-occur)
(setq helm-buffers-fuzzy-matching t
helm-recentf-fuzzy-match t
helm-M-x-fuzzy-match t
helm-semantic-fuzzy-match t
helm-imenu-fuzzy-match t)
(helm-projectile-on)
(setq helm-autoresize-max-height 0)
(setq helm-autoresize-min-height 20)
(helm-autoresize-mode 1)
(helm-mode 1)
;; Helm GTAGS
(require 'helm-gtags)
(add-hook 'c-mode-hook 'helm-gtags-mode)
(add-hook 'c++-mode-hook 'helm-gtags-mode)
(add-hook 'asm-mode-hook 'helm-gtags-mode)
;; (eval-after-load "helm-gtags"
;; '(progn
;; (define-key helm-gtags-mode-map (kbd "M-t") 'helm-gtags-find-tag)
;; (define-key helm-gtags-mode-map (kbd "M-r") 'helm-gtags-find-rtag)
;; (define-key helm-gtags-mode-map (kbd "M-s") 'helm-gtags-find-symbol)
;; (define-key helm-gtags-mode-map (kbd "M-g M-p") 'helm-gtags-parse-file)
;; (define-key helm-gtags-mode-map (kbd "C-c <") 'helm-gtags-previous-history)
;; (define-key helm-gtags-mode-map (kbd "C-c >") 'helm-gtags-next-history)
;; (define-key helm-gtags-mode-map (kbd "M-,") 'helm-gtags-pop-stack)))
(setq helm-gtags-ignore-case t
helm-gtags-auto-update t
helm-gtags-use-input-at-cursor t
helm-gtags-pulse-at-cursor t
helm-gtags-prefix-key "\C-cg"
helm-gtags-suggested-key-mapping t)
(add-hook 'dired-mode-hook 'helm-gtags-mode)
(add-hook 'eshell-mode-hook 'helm-gtags-mode)
(add-hook 'c-mode-hook 'helm-gtags-mode)
(add-hook 'c++-mode-hook 'helm-gtags-mode)
(add-hook 'asm-mode-hook 'helm-gtags-mode)
(define-key helm-gtags-mode-map (kbd "C-c g a") 'helm-gtags-tags-in-this-function)
(define-key helm-gtags-mode-map (kbd "C-j") 'helm-gtags-select)
(define-key helm-gtags-mode-map (kbd "M-.") 'helm-gtags-dwim)
(define-key helm-gtags-mode-map (kbd "M-,") 'helm-gtags-pop-stacks)
(define-key helm-gtags-mode-map (kbd "C-c <") 'helm-gtags-previous-history)
(define-key helm-gtags-mode-map (kbd "C-c >") 'helm-gtags-next-history)
;; Helm Github stars
(require 'helm-github-stars)
(setq helm-github-stars-username "r5n")
;;;; AucTeX
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'visual-line-mode)
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
;; Compile documents to PDF by default
(setq TeX-PDF-mode t)
;;;; Magit
(global-set-key (kbd "C-x g") 'magit-status)
;; Magithub
(magithub-feature-autoinject t)
(setq magithub-clone-default-directory "~/other")
;;;; Org mode
(require 'org)
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)
(add-to-list 'org-latex-packages-alist '("" "listingsutf8"))
;;; Autocomplete
;; (require 'org-ac)
;; (org-ac/config-default)
;;; Flyspell
(add-hook 'org-mode-hook
(lambda ()
(flyspell-mode)))
(add-hook 'org-mode-hook
(lambda ()
(writegood-mode)))
;;; open pdf exports in system viewer
(eval-after-load "org" '(progn (setcdr
(assoc "\\.pdf\\'" org-file-apps)
"xdg-open %s")))
;;; C-, and C-. used for window switching
;; (require 'bind-key)
;; (unbind-key "C-," org-mode-map)
;; (unbind-key "C-." org-mode-map)
;;; UTF-8 symbols
(setq org-pretty-entities t)
(setq org-pretty-entities-include-sub-superscripts t)
;;; Org Agenda
(setq org-agenda-files (list "~/org/tasks.org"))
(setq org-agenda-window-setup 'current-window)
(setq org-agenda-inhibit-startup nil) ; stop preparing agenda buffers on startup
;;; Org Babel
(require 'ob)
(org-babel-do-load-languages
'org-babel-load-languages
'((sh . t)
(emacs-lisp . t)
(python . t)
(ruby . t)
(js . t)
(ocaml . t)
(dot . t)
(ditaa . t)
(octave . t)
(scheme . t)))
(setq org-confirm-babel-evaluate nil)
(setq org-src-fontify-natively t)
(setq org-src-tab-acts-natively t)
(setq org-src-preserve-indentation t)
(setq TeX-auto-untabify 't)
;;;; C Programming
(setq c-default-style '((java-mode . "java")
(awk-mode . "awk")
(other . "linux")))
;; GGTAGS
;; currently using helm-gtags instead
;; (require 'ggtags)
;; (add-hook 'c-mode-common-hook
;; (lambda ()
;; (when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode)
;; (ggtags-mode 1))))
;; (define-key ggtags-mode-map (kbd "C-c g s") 'ggtags-find-other-symbol)
;; (define-key ggtags-mode-map (kbd "C-c g h") 'ggtags-view-tag-history)
;; (define-key ggtags-mode-map (kbd "C-c g r") 'ggtags-find-reference)
;; (define-key ggtags-mode-map (kbd "C-c g f") 'ggtags-find-file)
;; (define-key ggtags-mode-map (kbd "C-c g u") 'ggtags-update-tags)
;; (define-key ggtags-mode-map (kbd "M-,") 'pop-tag-mark)
;;;; Python
(load "python")
(define-key python-mode-map [remap backward-sentence] nil)
(define-key python-mode-map [remap forward-sentence] nil)
(require 'elpy)
(elpy-enable)
(setq elpy-rpc-backend "jedi")
(pyvenv-activate "/home/rmn/.conda/envs")
(add-to-list 'company-backends 'company-jedi)
;;;; Javascript
(require 'js2-mode)
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
(add-hook 'js2-mode-hook #'js2-imenu-extras-mode)
(require 'tern)
(add-hook 'js2-mode-hook (lambda () (tern-mode t)))
(eval-after-load 'tern
'(progn
(require 'tern-auto-complete)
(tern-ac-setup)))
(require 'nodejs-repl)
(add-hook 'js-mode-hook
(lambda ()
(define-key js-mode-map (kbd "C-x C-e") 'nodejs-repl-send-last-expression)
(define-key js-mode-map (kbd "C-c C-r") 'nodejs-repl-send-region)
(define-key js-mode-map (kbd "C-c C-l") 'nodejs-repl-load-file)
(define-key js-mode-map (kbd "C-c C-z") 'nodejs-repl-switch-to-repl)))
;;;; MATLAB
(autoload 'matlab-mode "matlab" "Matlab Editing Mode" t)
(add-to-list
'auto-mode-alist
'("\\.m$" . matlab-mode))
(setq matlab-indent-function t)
(setq matlab-shell-command "matlab")
(setq matlab-shell-command-switches (list "-nodesktop -nosplash"))
;;;; Haskell
(require 'hindent)
;; (add-hook 'haskell-mode-hook #'hindent-mode)
(eval-after-load 'haskell-mode
'(define-key haskell-mode-map [f8] 'haskell-navigate-imports))
(let ((my-cabal-path (expand-file-name "~/.cabal/bin")))
(setenv "PATH" (concat my-cabal-path path-separator (getenv "PATH")))
(add-to-list 'exec-path my-cabal-path))
(eval-after-load 'haskell-mode
'(progn
(define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload)
(define-key haskell-mode-map (kbd "C-c C-z") 'haskell-interactive-switch)
(define-key haskell-mode-map (kbd "C-c C-n C-t") 'haskell-process-do-type)
(define-key haskell-mode-map (kbd "C-c C-n C-i") 'haskell-process-do-info)
(define-key haskell-mode-map (kbd "C-c C-n C-c") 'haskell-process-cabal-build)
(define-key haskell-mode-map (kbd "C-c C-n c") 'haskell-process-cabal)))
(eval-after-load 'haskell-cabal
'(progn
(define-key haskell-cabal-mode-map (kbd "C-c C-z") 'haskell-interactive-switch)
(define-key haskell-cabal-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear)
(define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build)
(define-key haskell-cabal-mode-map (kbd "C-c c") 'haskell-process-cabal)))
(autoload 'ghc-init "ghc" nil t)
(autoload 'ghc-debug "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
;; Literate Haskell stuff
(require 'mmm-auto)
(setq mmm-global-mode 'maybe)
(add-hook 'haskell-mode-hook 'my-mmm-mode)
(mmm-add-classes
'((literate-haskell-bird
:submode text-mode
:front "^[^>]"
:include-front true
:back "^>\\|$")
(literate-haskell-latex
:submode literate-haskell-mode
:front "^\\\\begin{code}"
:front-offset (end-of-list 1)
:back "^\\\\end{code}"
:include-back nil
:back-offset (beginning-of-line -1))))
(defun my-mmm-mode ()
"go into mmm minor mode when class is given"
(make-local-variable 'mmm-global-mode)
(setq mmm-global-mode 'true))
(setq mmm-submode-decoration-level 0)
(add-to-list 'mmm-mode-ext-classes-alist
'(latex-mode "\\.lhs$" haskell))
(add-to-list 'auto-mode-alist '("\\.lhs\\'" . latex-mode))
(eval-after-load "tex"
'(progn
(add-to-list 'LaTeX-command-style '("lhs" "lhslatex"))
(add-to-list 'TeX-file-extensions "lhs")))
;; Structured Haskell Mode
;; (add-to-list 'load-path "/home/rmn/structured-haskell-mode/elisp")
(require 'shm)
(add-hook 'haskell-mode-hook 'structured-haskell-mode)
;; (set-face-background 'shm-current-face "#eee8d4")
;; (set-face-background 'shm-quarantine-face "lemonchiffon")
;;;; Ocaml
;;; Add opam emacs directory to load-path
(let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var"
"share")))))
(when (and opam-share (file-directory-p opam-share))
;; Register Merlin
(add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share))
(autoload 'merlin-mode "merlin" nil t nil)
;; Automatically start it in OCaml buffers
(add-hook 'tuareg-mode-hook 'merlin-mode t)
(add-hook 'caml-mode-hook 'merlin-mode t)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)))
(load "/home/rmn/.opam/system/share/emacs/site-lisp/tuareg-site-file")
;;; Merlin autocomplete
(setq merlin-ac-setup t)
;;;; Evil mode
;; (require 'evil)
;; (evil-mode t)
;; (require 'evil-magit)
;; (setq evil-magit-state 'motion)
;;;; Flycheck Mode
(global-flycheck-mode 1)
(require 'helm-flycheck)
(eval-after-load 'flycheck
'(define-key flycheck-mode-map (kbd "C-c ! h") 'helm-flycheck))
(eval-after-load 'flycheck
'(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))
(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 "Iosevka" :foundry "CYEL" :slant normal :weight normal :height 98 :width normal)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment