(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. '(ledger-reports (quote (("test" "ledger bal") ("bal" "%(binary) -f %(ledger-file) bal") ("reg" "%(binary) -f %(ledger-file) reg") ("payee" "%(binary) -f %(ledger-file) reg @%(payee)") ("account" "%(binary) -f %(ledger-file) reg %(account)")))) '(org-agenda-files (quote ("/home/blaise/org/agenda.org" "/home/blaise/org/anniversaries.org" "/home/blaise/org/repeat.org" "/home/blaise/org/todo.org" "/home/blaise/org/wright/PbSe.org" "/home/blaise/org/wright/PyCMDS.org" "/home/blaise/org/wright/WrightTools.org" "/home/blaise/org/wright/cobalamin.org" "/home/blaise/org/wright/todo.org"))) '(package-selected-packages (quote (helm-flyspell flycheck which-key helm-swoop evil-leader helm spaceline evil use-package)))) (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. ) ;; Bootstrap `use-package' (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/")) (package-initialize) (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) ;; settings --------------------------------------------------------------------------------------- (global-auto-revert-mode t) (setq visual-line-fringe-indicators '(left-curly-arrow right-curly-arrow)) (setq make-backup-files nil) ;; packages --------------------------------------------------------------------------------------- ;; company (use-package company :ensure t ) ;; evil (use-package evil-leader :ensure t :config (evil-leader/set-leader "") (global-evil-leader-mode) ) (use-package evil :config (evil-mode 1) (modify-syntax-entry ?_ "w") ) ;; flycheck (use-package flycheck :ensure t :init (global-flycheck-mode)) ;; helm (use-package helm :ensure t :config (define-key helm-map (kbd "TAB") #'helm-execute-persistent-action) (define-key helm-map (kbd "") #'helm-execute-persistent-action) (define-key helm-map (kbd ":") #'helm-select-action) ) (use-package helm-flyspell :ensure t :init (flyspell-mode) ) (use-package helm-swoop :ensure t ) (use-package helm-bibtex :ensure t :init (setq bibtex-completion-bibliography '("~/literature/database.bib")) (setq bibtex-completion-library-path '("~/literature")) (setq bibtex-completion-notes-path "~/literature") (setq bibtex-completion-pdf-open-function (lambda (fpath) (call-process "evince" nil 0 nil fpath) ) ) ) ;; ledger (use-package ledger-mode :ensure t :mode "\\.ledger$" ) ; TODO: consider using flycheck-ledger ;; org (use-package org :ensure t ) (setq org-todo-keywords '((sequence "TODO" "WAITING" "|" "DONE" "DELEGATED" "CANCELED"))) (setq org-tags-column -99) (use-package org-brain :ensure t :init (setq org-brain-path "~/brain") ;; For Evil users (with-eval-after-load 'evil (evil-set-initial-state 'org-brain-visualize-mode 'emacs)) :config (setq org-id-track-globally t) (setq org-id-locations-file "~/.emacs.d/.org-id-locations") (setq org-brain-visualize-default-choices 'all) (setq org-brain-title-max-length 12) (setq org-agenda-files '("~/org/")) (setq org-agenda-span 30) (setq org-agenda-window-setup 'only-window) ) ;; spaceline (use-package spaceline :ensure t) (setq powerline-default-separator 'bar) (spaceline-emacs-theme) ;; which-key (use-package which-key :ensure t :config (setq which-key-popup-type 'minibuffer) (setq which-key-allow-evil-operators t) ) (which-key-mode) ;;; theme ----------------------------------------------------------------------------------------- (menu-bar-mode -1) (tool-bar-mode -1) (toggle-scroll-bar -1) ;; TODO: color theme (setq-default left-margin-width 0 right-margin-width 0) (load-file "~/source/dotfiles/emacs/color-theme-tomorrow.el") (color-theme-tomorrow-night) (set-face-attribute 'helm-selection nil :background "#373b41" :foreground "#c5c8c6" ) (set-face-attribute 'highlight nil :background "#373b41" ) (add-to-list 'org-emphasis-alist '("*" (:background "#373b41" :foreground "#c5c8c6" ) )) ;;; functions ------------------------------------------------------------------------------------- (defun flyspell-goto-previous-error (arg) "Go to arg previous spelling error." (interactive "p") (while (not (= 0 arg)) (let ((pos (point)) (min (point-min))) (if (and (eq (current-buffer) flyspell-old-buffer-error) (eq pos flyspell-old-pos-error)) (progn (if (= flyspell-old-pos-error min) ;; goto beginning of buffer (progn (message "Restarting from end of buffer") (goto-char (point-max))) (backward-word 1)) (setq pos (point)))) ;; seek the next error (while (and (> pos min) (let ((ovs (overlays-at pos)) (r '())) (while (and (not r) (consp ovs)) (if (flyspell-overlay-p (car ovs)) (setq r t) (setq ovs (cdr ovs)))) (not r))) (backward-word 1) (setq pos (point))) ;; save the current location for next invocation (setq arg (1- arg)) (setq flyspell-old-pos-error pos) (setq flyspell-old-buffer-error (current-buffer)) (goto-char pos) (if (= pos min) (progn (message "No more miss-spelled word!") (setq arg 0)))))) (defun check-previous-spelling-error () "Jump to previous spelling error and correct it" (interactive) (push-mark-no-activate) (flyspell-goto-previous-error 1) (call-interactively 'helm-flyspell-correct)) (defun check-next-spelling-error () "Jump to next spelling error and correct it" (interactive) (push-mark-no-activate) (flyspell-buffer) (flyspell-goto-next-error) (call-interactively 'helm-flyspell-correct)) (defun push-mark-no-activate () "Pushes `point' to `mark-ring' and does not activate the region Equivalent to \\[set-mark-command] when \\[transient-mark-mode] is disabled" (interactive) (push-mark (point) t nil) (message "Pushed mark to ring")) ;;; hooks ----------------------------------------------------------------------------------------- ;; text mode (add-hook 'text-mode-hook 'flyspell-mode) (add-hook 'text-mode-hook 'turn-on-visual-line-mode) ;; global (add-hook 'after-init-hook 'global-company-mode) (add-hook 'before-save-hook 'delete-trailing-whitespace) ;;; keybindings ----------------------------------------------------------------------------------- (org-babel-do-load-languages 'org-babel-load-languages (append org-babel-load-languages '((python . t) (ledger . t) (shell .t) (ruby . t)))) (global-set-key "\t" 'company-complete-common) (evil-leader/set-key "a" 'org-agenda-list) (evil-leader/set-key "b" 'org-brain-visualize) (evil-leader/set-key "B" 'org-brain-visualize) (evil-leader/set-key "c" 'calc) (evil-leader/set-key "f" 'helm-find-files) (evil-leader/set-key "j" 'dired-jump) (evil-leader/set-key "k" 'kill-buffer) (evil-leader/set-key "l" 'helm-bibtex) (evil-leader/set-key "m" 'helm-mini) (evil-leader/set-key "q" 'save-buffers-kill-terminal) (evil-leader/set-key "s" 'check-next-spelling-error) (evil-leader/set-key "t" 'color-theme-tomorrow-night) (evil-leader/set-key "T" 'color-theme-tomorrow) (evil-leader/set-key "," 'other-window) (evil-leader/set-key "/" 'helm-swoop) (evil-leader/set-key "" 'helm-M-x)