181 lines
4.7 KiB
Text
181 lines
4.7 KiB
Text
(package-initialize)
|
|
(require 'package)
|
|
|
|
;; Quote
|
|
(setq initial-scratch-message ";; Simplicity and elegance are unpopular because\n;; they require hard work and discipline to achieve\n;; and education to be appreciated.\n;;\n;; - Dijkstra")
|
|
|
|
;(push '("marmalade" . "http://marmalade-repo.org/packages/") package-archives)
|
|
(push '("melpa" . "http://melpa.milkbox.net/packages/") package-archives)
|
|
|
|
(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"])
|
|
'(blink-cursor-mode nil)
|
|
'(custom-enabled-themes (quote (heroku)))
|
|
'(custom-safe-themes
|
|
(quote
|
|
("4f2ede02b3324c2f788f4e0bad77f7ebc1874eff7971d2a2c9b9724a50fb3f65" default)))
|
|
'(global-evil-surround-mode t)
|
|
'(inhibit-startup-screen t)
|
|
'(menu-bar-mode nil)
|
|
'(package-selected-packages
|
|
(quote
|
|
(ivy avy heroku-theme auto-complete use-package yasnippet evil-surround org evil-magit magit makefile-runner evil)))
|
|
'(scroll-bar-mode nil)
|
|
'(tool-bar-mode nil))
|
|
(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.
|
|
)
|
|
|
|
;; ensure repo cache is up1date
|
|
(or (file-exists-p package-user-dir)
|
|
(package-refresh-contents))
|
|
|
|
;; Install use-package
|
|
(defun ensure-package-installed (package)
|
|
"Ensure packages are installed"
|
|
(if (package-installed-p package)
|
|
nil
|
|
(progn
|
|
(package-refresh-contents)
|
|
(package-install package))))
|
|
|
|
(ensure-package-installed 'use-package)
|
|
|
|
|
|
;; theme
|
|
(use-package heroku-theme
|
|
:ensure t)
|
|
|
|
;; Org-mode
|
|
(use-package org
|
|
:ensure t)
|
|
|
|
;; Evil-mode
|
|
(use-package evil
|
|
:ensure t
|
|
:demand t
|
|
:config (evil-mode 1))
|
|
|
|
;; Auto-Complete
|
|
(use-package auto-complete
|
|
:ensure t
|
|
:demand t
|
|
:config (progn
|
|
(require 'auto-complete-config)
|
|
(ac-config-default)))
|
|
|
|
(use-package ivy
|
|
:ensure t
|
|
:demand t
|
|
:config (progn
|
|
(ivy-mode 1)
|
|
(setq ivy-use-virtual-buffers t)
|
|
(setq ivy-count-format "(%d/%d) ")))
|
|
|
|
;; Yasnippet
|
|
(use-package yasnippet
|
|
:demand t
|
|
:config (yas-global-mode 1))
|
|
|
|
;; avy
|
|
(use-package avy
|
|
:ensure t
|
|
:demand t
|
|
:bind ("C-s" . avy-goto-word-0)
|
|
:config (progn
|
|
(setq avy-keys '(?a ?s ?d ?f ?g ?q ?w ?e ?r ?t ?y ?x ?c ?v ?z ?u ?i ?o ?p ?h ?j ?k ?l ?b ?n ?m))))
|
|
|
|
;; Magit
|
|
(use-package magit
|
|
:ensure t
|
|
:bind ("C-x g" . magit-status))
|
|
|
|
;; Easy terminal
|
|
(setq my/default-shell (or (executable-find "zsh") (executable-find "bash")))
|
|
|
|
(defun term-split ()
|
|
"creates terminal window below"
|
|
(interactive)
|
|
(let ((window (split-window-below -7)))
|
|
(select-window window)
|
|
(term my/default-shell)))
|
|
|
|
(use-package term
|
|
:bind ("C-x t" . term-split))
|
|
|
|
;; tabbing (doesn't really work yet)
|
|
(setq-default indent-tabs-mode t)
|
|
(setq-default tab-width 4)
|
|
(setq-default LateX-indent-level 4)
|
|
|
|
;; Window movement
|
|
(global-set-key (kbd "C-x <up>") 'windmove-up)
|
|
(global-set-key (kbd "C-x <down>") 'windmove-down)
|
|
(global-set-key (kbd "C-x <left>") 'windmove-left)
|
|
(global-set-key (kbd "C-x <right>") 'windmove-right)
|
|
|
|
(defun cycle-window ()
|
|
"cycles windows"
|
|
(interactive)
|
|
(select-window (next-window)))
|
|
|
|
(global-set-key (kbd "<C-tab>") 'cycle-window)
|
|
|
|
;; Kill term buffer on exit
|
|
;(defun term-handle-exit--close-buffer (&rest args)
|
|
; (when (null (get-buffer-process (current-buffer)))
|
|
; (progn
|
|
; (let (window (get-buffer-window (current-buffer))
|
|
; (when (window-dedicated-p ))
|
|
; (kill-buffer (current-buffer))
|
|
; Fix...
|
|
|
|
; (advice-add 'term-handle-exit :after #'term-handle-exit--close-buffer)
|
|
|
|
;; Latex german
|
|
(quail-define-package "latex-german" "UTF-8" "LaGe" t
|
|
"Transforms umlauts to the better latex notation.
|
|
ä -> \"a
|
|
ö -> \"o
|
|
ü -> \"u
|
|
Ä -> \"A
|
|
Ö -> \"O
|
|
Ü -> \"U
|
|
ß -> \"s"
|
|
nil t nil nil nil nil nil nil nil nil t)
|
|
(quail-define-rules
|
|
("ä" ["\"a"])
|
|
("ö" ["\"o"])
|
|
("ü" ["\"u"])
|
|
("Ä" ["\"A"])
|
|
("Ö" ["\"O"])
|
|
("Ü" ["\"U"])
|
|
("ß" ["\"s"])
|
|
)
|
|
|
|
(add-hook 'latex-mode-hook (lambda ()
|
|
(set-input-method "latex-german")
|
|
(local-set-key "\"" 'self-insert-command)))
|
|
|
|
;; Split windows horizontally preferred
|
|
(setq split-height-threshold 6)
|
|
(setq split-width-threshold 20)
|
|
|
|
;; Overlay windows (What does it do?)
|
|
(add-to-list 'display-buffer-alist
|
|
'("*Apropos*" display-buffer-same-window))
|
|
(add-to-list 'display-buffer-alist
|
|
'("*Help*" display-buffer-same-window))
|
|
|
|
;; Change all prompts to y or n
|
|
(fset 'yes-or-no-p 'y-or-n-p)
|