(package-initialize) (defun ensure-packages-installed (packages) "Ensure packages are installed" (mapcar (lambda (package) (if (package-installed-p package) nil (if (y-or-n-p (format "Package %s is missing. Install it? " package)) (package-install package) package))) packages)) (require 'package) (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]) '(blink-cursor-mode nil) '(custom-enabled-themes (quote (wombat))) '(global-evil-surround-mode t) '(inhibit-startup-screen t) '(menu-bar-mode nil) '(package-selected-packages (quote (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. '(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "PfEd" :family "Inconsolata"))))) ;; ensure repo cache is up1date (or (file-exists-p package-user-dir) (package-refresh-contents)) (ensure-packages-installed '(org evil evil-surround magit evil-magit auto-complete)) ;; Evil mode <3 (require 'evil) (evil-mode t) ;; auto-complete (require 'auto-complete) (require 'auto-complete-config) (ac-config-default) ;; Yasnippet (require 'yasnippet) (yas-global-mode 1) ;; Window movement (global-set-key (kbd "C-x ") 'windmove-up) (global-set-key (kbd "C-x ") 'windmove-down) (global-set-key (kbd "C-x ") 'windmove-left) (global-set-key (kbd "C-x ") 'windmove-right) ;; Magit (global-set-key (kbd "C-x g") 'magit-status) ;; Window cycling (defun cycle-window () "cycles windows" (interactive) (select-window (next-window))) (global-set-key (kbd "") 'cycle-window) ;; Easy terminal (defun term-split () "creates terminal window below" (interactive) (let ((window (split-window-below -7))) (select-window window) (term "/bin/zsh"))) ;(set-window-dedicated-p window t))) (global-set-key (kbd "C-x t") 'term-split) ;; 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 (defun evil-is-insert () (string= evil-state "insert")) (defun latex-german-umlauts () "Sets keys like ä to write \"a" (message "Latex German Umlauts loaded.") (local-set-key (kbd "ä") (lambda () (interactive) (when (evil-is-insert) (insert "\"a")))) (local-set-key (kbd "ö") (lambda () (interactive) (when (evil-is-insert) (insert "\"o")))) (local-set-key (kbd "ü") (lambda () (interactive) (when (evil-is-insert) (insert "\"u")))) (local-set-key (kbd "Ä") (lambda () (interactive) (when (evil-is-insert) (insert "\"A")))) (local-set-key (kbd "Ö") (lambda () (interactive) (when (evil-is-insert) (insert "\"O")))) (local-set-key (kbd "Ü") (lambda () (interactive) (when (evil-is-insert) (insert "\"U")))) (local-set-key (kbd "ß") (lambda () (interactive) (when (evil-is-insert) (insert "\"s"))))) (add-hook 'latex-mode-hook 'latex-german-umlauts) ;; Split windows horizontally preferred (setq split-height-threshold 6) (setq split-width-threshold 20) ;; Overlay windows (add-to-list 'display-buffer-alist '("*Apropos*" display-buffer-same-window)) (add-to-list 'display-buffer-alist '("*Help*" display-buffer-same-window))