diff --git a/emacs/.emacs b/emacs/.emacs new file mode 100644 index 0000000..7b72730 --- /dev/null +++ b/emacs/.emacs @@ -0,0 +1,352 @@ +(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\n\n") + +;; Set frame title +(setq frame-title-format "[%m] %f") + +;; Default frame size +(setq initial-frame-alist + '( + (width . 110) + (height . 40) + )) + +(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 + (swiper neotree centered-cursor-mode 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. + '(neo-dir-link-face ((t (:foreground "#fce94f")))) + '(neo-expand-btn-face ((t (:foreground "#ffe070")))) + '(neo-root-dir-face ((t (:foreground "#fff3c6" :weight bold)))) + '(powerline-active1 ((t (:inherit mode-line)))) + '(powerline-active2 ((t (:inherit mode-line)))) + '(powerline-evil-emacs-face ((t (:inherit powerline-evil-base-face :background "gray30" :foreground "white")))) + '(powerline-evil-insert-face ((t (:inherit powerline-evil-base-face :background "forest green")))) + '(powerline-evil-motion-face ((t (:inherit powerline-evil-base-face :background "white" :foreground "black")))) + '(powerline-evil-normal-face ((t (:inherit powerline-evil-base-face :background "white" :foreground "grey22")))) + '(powerline-evil-replace-face ((t (:inherit powerline-evil-base-face :background "dark red"))))) + +;; 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) + +;; *.tex files are Latex-Files +(add-to-list 'auto-mode-alist '("\\.tex\\'" . latex-mode)) + +;; Extra Latex keybindings +(defun my/latex-keybindings () + (define-key latex-mode-map (kbd "") 'recompile)) +(add-hook 'latex-mode-hook 'my/latex-keybindings) + +;; show parens +(show-paren-mode t) + +;; highlight line +(global-hl-line-mode) + +;; shackle +;(defun my/shackle-rules () +; (setq shackle-rules +; '((term-mode :select t :align 'below :size 0.2)))) +; +;(use-package shackle +; :ensure t +; :demand t +; :config '(my/shackle-rules)) + +;; powerline +(use-package powerline + :ensure t + :demand t) + +(use-package powerline-evil + :ensure t + :demand t + :config + (powerline-evil-vim-color-theme)) + +;; 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) + (setq evil-ex-substitute-global t) + (define-key evil-normal-state-map "/" 'swiper) + (setq-default evil-cross-lines t)) + +;; Auto-Complete +(use-package auto-complete + :ensure t + :demand t + :config (progn + (require 'auto-complete-config) + (ac-config-default))) + +;; ivy +(use-package ivy + :ensure t + :demand t + :config (progn + (ivy-mode 1) + (setq ivy-use-virtual-buffers t) + (setq ivy-count-format "(%d/%d) ") + (define-key ivy-minibuffer-map (kbd "") 'ivy-immediate-done))) + +;; swiper +(use-package swiper + :ensure t + :bind ("C-s" . swiper)) + +;; Neotree +(use-package neotree + :ensure t + :bind ("C-x n" . neotree-show) + :config + (setq neo-theme 'ascii) + (evil-define-key 'normal neotree-mode-map (kbd "+") 'neotree-create-node) + (evil-define-key 'normal neotree-mode-map (kbd "g") 'neotree-refresh) + (evil-define-key 'normal neotree-mode-map (kbd "d") 'neotree-delete-node) + (evil-define-key 'normal neotree-mode-map (kbd "c") 'neotree-rename-node) + (evil-define-key 'normal neotree-mode-map (kbd "TAB") 'neotree-enter) + (evil-define-key 'normal neotree-mode-map (kbd "RET") 'neotree-enter) + (evil-define-key 'normal neotree-mode-map (kbd "q") 'neotree-hide)) + + +;; Cursor centered +(use-package centered-cursor-mode + :ensure t + :demand t + :disabled + :config (global-centered-cursor-mode)) + +;; Yasnippet +(use-package yasnippet + :ensure t + :demand t + :config (yas-global-mode 1)) + +;; avy +(use-package avy + :ensure t + :demand t + :disabled + :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) + (set-window-dedicated-p window t))) +; +;(use-package term +; :bind ("C-x t" . term-split)) +; +;(defun term-handle-exit--close-buffer (&rest args) +; (let ((term-window (get-buffer-window "*terminal*"))) +; (when (and term-window (window-dedicated-p term-window)) +; (delete-window term-window)))) + +;(advice-add 'term-handle-exit :after #'term-handle-exit--close-buffer) + +;(add-to-list 'display-buffer-alist +; '("\\*terminal\\*" display-buffer-pop-up-window)) + +(defun my/term () + (interactive) + (term my/default-shell)) + +(use-package term + :bind ("C-x t" . my/term)) + +;; tabbing (doesn't really work yet) +(setq-default indent-tabs-mode t) +(setq-default tab-width 4) +(setq-default LateX-indent-level 4) + +;; Activate line numbers +(global-linum-mode t) + +;; compilation buffer +; Set buffer scrolling +(setq compilation-scroll-output 'first-error) + +; kill window if successfull +;(defun bury-compile-buffer-if-successful (buffer string) +; "Bury a compilation buffer if succeeded without warnings " +; (when (and +; (buffer-live-p buffer) +; (string-match "compilation" (buffer-name buffer)) +; (string-match "finished" string) +; (not +; (with-current-buffer buffer +; (goto-char (point-min)) +; (search-forward "warning" nil t)))) +; (run-with-timer 1 nil +; (lambda (buf) +; (bury-buffer buf) +; (switch-to-prev-buffer (get-buffer-window buf) 'kill)) +; buffer))) +;(add-hook 'compilation-finish-functions 'bury-compile-buffer-if-successful) +; set window height +(setq compilation-window-height 10) + +(defun my-compilation-hook () + (when (not (get-buffer-window "*compilation*")) + (save-selected-window + (save-excursion + (let* ((w (split-window-vertically)) + (h (window-height w))) + (select-window w) + (switch-to-buffer "*compilation*") + (shrink-window (- h compilation-window-height))))))) +(add-hook 'compilation-mode-hook 'my-compilation-hook) + +;; Window movement +; Old keys +(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) + +; New keys +(global-set-key (kbd "") 'windmove-up) +(global-set-key (kbd "") 'windmove-down) +(global-set-key (kbd "") 'windmove-left) +(global-set-key (kbd "") 'windmove-right) + +(defun cycle-window () + "cycles windows" + (interactive) + (select-window (next-window))) + +(global-set-key (kbd "") 'cycle-window) + +;; 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) + +;; Insert time, german format +(defun datetime-german () + (interactive) + (insert (format-time-string "%d.%m.%Y %H:%M"))) + +(global-set-key (kbd "C-c C-d") 'datetime-german) + +;; Comment fun + +;(defun extend-comment () +; (interactive) +; (if (looking-back "//" (line-beginning-position)) +; (progn +; (newline-and-indent) +; (insert "Hallo Welt")) +; (newline-and-indent))) + +;; Show in binary and decimal + +;(defun hex-popup () +; (interactive) +; (let (hexStr p1 p2) +; (save-excursion +; (search-backward-regexp "[^0-9A-Fa-f]" nil t) +; (forward-char) +; (setq p1 (point)) +; (search-forward-regexp "[^0-9A-Fa-f]" nil t) +; (backward-char) +; (setq p2 (point))) +; (setq hexStr (buffer-substring-no-properties p1 p2)) +; (message "The hex number is: '%s' '%d' '%d'" hexStr p1 p2))) diff --git a/emacs/.emacs.d/snippets/latex-mode/description-env b/emacs/.emacs.d/snippets/latex-mode/description-env new file mode 100644 index 0000000..e42b9ed --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/description-env @@ -0,0 +1,11 @@ +# -*- mode: snippet -*- +# name: description-env +# key: desc +# -- +\begin{description} + +\item[$1] $2 + +$0 + +\end{description} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/emph b/emacs/.emacs.d/snippets/latex-mode/emph new file mode 100644 index 0000000..6f6762f --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/emph @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: emph +# key: emph +# -- +\emph{$1} $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/item b/emacs/.emacs.d/snippets/latex-mode/item new file mode 100644 index 0000000..cedcd92 --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/item @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: item +# key: it +# -- +\item $1 +$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/item-desc b/emacs/.emacs.d/snippets/latex-mode/item-desc new file mode 100644 index 0000000..43555c4 --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/item-desc @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: item-desc +# key: itd +# -- +\item[$1] $2 +$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/itemize b/emacs/.emacs.d/snippets/latex-mode/itemize new file mode 100644 index 0000000..befcb96 --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/itemize @@ -0,0 +1,10 @@ +# -*- mode: snippet -*- +# name: itemize +# key: item +# -- +\begin{itemize} + +\item $1 +$0 + +\end{itemize} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/lstinput b/emacs/.emacs.d/snippets/latex-mode/lstinput new file mode 100644 index 0000000..50e9071 --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/lstinput @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: lstinput +# key: lstinput +# -- +\lstinputlisting[$2,label=file:$1]{$1} +$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/verb b/emacs/.emacs.d/snippets/latex-mode/verb new file mode 100644 index 0000000..789d3a7 --- /dev/null +++ b/emacs/.emacs.d/snippets/latex-mode/verb @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: verb +# key: verb +# -- +\verb+$1+ $0 \ No newline at end of file diff --git a/vim/.vim/snippets/tex.snippets b/vim/.vim/snippets/tex.snippets index 7397ca6..b2d4709 100644 --- a/vim/.vim/snippets/tex.snippets +++ b/vim/.vim/snippets/tex.snippets @@ -115,7 +115,11 @@ snippet section ${1:Section}~\ref{${2:sec:}}${3} snippet page ${1:page}~\pageref{${2}}${3} - +snippet frame + \begin{frame} + \frametitle{${1:Title}} + ${2} + \end{frame} snippet title \title{${1}} \author{${2}} diff --git a/vim/.vimrc b/vim/.vimrc index 051c086..50e4ad3 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -61,7 +61,7 @@ set tm=500 set encoding=utf8 "Always use utf8 set ffs=unix,dos,mac " Auto use EOL according to file set noswapfile -set expandtab "Tabbing +set noexpandtab " No spaces just Tabs set smarttab " Deleting and creating spaces representing tabs set ai "auto indent set si "smart indent @@ -95,6 +95,16 @@ set listchars=eol:↲,tab:▶▹,nbsp:␣,extends:…,trail:• " --- Latex {{{ au BufRead,BufNewFile *.tex set ft=tex +au FileType tex inoremap " " +au FileType tex inoremap ä "a +au FileType tex inoremap ö "o +au FileType tex inoremap ü "u +au FileType tex inoremap Ä "A +au FileType tex inoremap Ö "O +au FileType tex inoremap Ü "U +au FileType tex inoremap ß "s +au FileType tex inoremap "" \quot{}i + " }}} " --- Abbreviations {{{ @@ -191,7 +201,6 @@ nnoremap i :set list! " Vimux nnoremap rr :call RunCmdVimux() nnoremap rq :call VimuxCloseRunner() -nnoremap ; :call AddSemicolon() nnoremap t :g/TODO/ nnoremap :TigStatus " 0 should find first non blank @@ -215,7 +224,7 @@ nnoremap Q @@ inoremap nnoremap vnoremap -" -- Make Y behave correct +" -- Make Y behave correctly map Y y$ " -- Quick adding of spaces nnoremap il @@ -297,6 +306,7 @@ map F (easymotion-Fl) " --- Auto pairs config {{{ let g:lexima_enable_basic_rules = 1 " }}} -" --- Codestyle {{{ -au BufRead,BufNewFile *.{cpp,hpp,h} match ErrorMsg '\%>80v.\+' -" }}} + +set ts=4 +set noet + diff --git a/zsh/.zsh/03-aliases.zsh b/zsh/.zsh/03-aliases.zsh index 4dad63c..9bd5055 100644 --- a/zsh/.zsh/03-aliases.zsh +++ b/zsh/.zsh/03-aliases.zsh @@ -1,6 +1,5 @@ alias ls="ls --color=auto --quoting-style=literal" alias ll="ls -l" alias la="ls -la" -alias emacs="vim" alias lf="ls -l" alias laf="ls -al"