tvl-depot/init.el

171 lines
4.8 KiB
EmacsLisp
Raw Normal View History

;; Configure package manager
2013-07-01 02:32:30 +02:00
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents))
;; Important packages
(defvar my-pkgs '(starter-kit
starter-kit-bindings
haskell-mode
markdown-mode
magit
color-theme-solarized
projectile
2013-07-04 22:49:26 +02:00
rainbow-delimiters
2013-07-05 00:28:47 +02:00
nrepl
ace-jump-mode)
2013-07-01 03:14:15 +02:00
"A list of packages to install at launch.")
2013-07-01 02:32:30 +02:00
(dolist (p my-pkgs)
(when (not (package-installed-p p))
(package-install p)))
;; Configure el-get
(require 'cl)
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
;; Install el-get if not already present
(unless (require 'el-get nil t)
(url-retrieve
"https://github.com/dimitri/el-get/raw/master/el-get-install.el"
(lambda (s)
(end-of-buffer)
(eval-print-last-sexp))))
;; el-get recipes
(setq
my:el-get-packages
'(el-get
switch-window))
(el-get 'sync my:el-get-packages)
2013-07-01 03:14:15 +02:00
;; Set solarized theme
(load-theme 'solarized-dark t)
;; Other general settings
2013-07-05 00:28:47 +02:00
;; Swedish!
(set-language-environment 'Swedish)
;; Enable mouse support on OS X
(unless window-system
(require 'mouse)
(xterm-mouse-mode t)
(global-set-key [mouse-4] '(lambda ()
(interactive)
(scroll-down 1)))
(global-set-key [mouse-5] '(lambda ()
(interactive)
(scroll-up 1)))
(defun track-mouse (e))
(setq mouse-sel-mode t)
)
;; Use clipboard properly
(setq x-select-enable-clipboard t)
;; Navigate windows with M-<arrows>
(windmove-default-keybindings 'meta)
(setq windmove-wrap-around t)
2013-07-05 00:28:47 +02:00
;; Load ace-jump-mode
(autoload
'ace-jump-mode
"ace-jump-mode"
"Emacs quick move minor mode"
t)
(define-key global-map [?] 'ace-jump-mode)
;; Quick jump back
(autoload
'ace-jump-mode-pop-mark
"ace-jump-mode"
"Ace jump back:-)"
t)
(eval-after-load "ace-jump-mode"
'(ace-jump-mode-enable-mark-sync))
(define-key global-map (kbd "C-x ö") 'ace-jump-mode-pop-mark)
2013-07-02 23:13:15 +02:00
;; Configure markdown-mode
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.txt\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
2013-07-01 02:32:30 +02:00
;; Configure haskell-mode
;; Enable semi-automatic indentation and font-locking
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'font-lock-mode)
;; Add keybindings to move nested blocks with C-, rsp. C-.
(define-key haskell-mode-map (kbd "C-,") 'haskell-move-nested-left)
(define-key haskell-mode-map (kbd "C-.") 'haskell-move-nested-right)
2013-07-01 19:09:26 +02:00
2013-07-04 22:49:26 +02:00
;; Configure nreply (Clojure mode)
(require 'nrepl)
;; eldoc in clojure
(add-hook 'nrepl-interaction-mode-hook
'nrepl-turn-on-eldoc-mode)
;; Don't annoy me
(setq nrepl-hide-special-buffers t)
(setq nrepl-popup-stacktraces nil)
;; Paredit in nrepl
(add-hook 'nrepl-mode-hook 'paredit-mode)
(add-hook 'nrepl-mode-hook 'rainbow-delimiters-mode)
2013-07-01 19:09:26 +02:00
;; IRC configuration (erc)
;; Actual servers and such are loaded from irc.el
(require 'erc)
(load "~/.emacs.d/irc")
;; Hiding JOIN, QUIT, PART
(setq erc-hide-list '("JOIN" "PART" "QUIT"))
;; Eshell
;; Start/join
(global-set-key (kbd "C-x m") 'eshell)
;; Always start
(global-set-key (kbd "C-x M") (lambda () (interactive) (eshell t)))
;; Git
(global-set-key (kbd "C-c g") 'magit-status)
(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
;; Enable projectile for all things programming
(require 'projectile)
(add-hook 'prog-mode-hook 'projectile-on)
;; Enable rainbow-delimiters for all things programming
(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
2013-07-04 12:10:05 +02:00
;; Start server for emacsclient
(server-start)
2013-07-01 19:09:26 +02:00
(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.
2013-07-04 22:49:26 +02:00
'(custom-safe-themes (quote ("fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" "1e7e097ec8cb1f8c3a912d7e1e0331caeed49fef6cff220be63bd2a6ba4cc365" "d6a00ef5e53adf9b6fe417d2b4404895f26210c52bb8716971be106550cea257" default)))
2013-07-01 19:09:26 +02:00
'(erc-modules (quote (autojoin button completion dcc irccontrols list log match menu move-to-prompt netsplit networks noncommands notifications readonly ring scrolltobottom stamp track))))
(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.
)