Created
September 29, 2017 01:58
-
-
Save matthew-ball/4f5b1e2bb0fc478e6b7c02f82b7aa4c0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require 'org) | |
(require 'org-agenda) | |
(require 'org-capture) | |
(require 'org-indent) | |
(require 'ox-latex) | |
(require 'ox-odt) | |
(add-to-list 'org-latex-classes | |
'("paper" | |
"\\documentclass[12pt,a4paper,oneside]{paper} | |
\\setcounter{secnumdepth}{0} | |
[NO-DEFAULT-PACKAGES] | |
[EXTRA]" | |
("\\section{%s}" . "\\section*{%s}") | |
("\\subsection{%s}" . "\\subsection*{%s}") | |
("\\subsubsection{%s}" . "\\subsubsection*{%s}") | |
("\\paragraph{%s}" . "\\paragraph*{%s}") | |
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) | |
(setq org-return-follows-link 1 | |
org-completion-use-ido 1 | |
org-hide-emphasis-markers 1 | |
org-directory user-documents-directory | |
org-default-notes-file user-notes-file | |
org-agenda-inhibit-startup 1 | |
org-agenda-span 'month | |
org-agenda-files `(,(expand-file-name user-notes-file)) | |
org-confirm-babel-evaluate nil | |
org-src-fontify-natively 1 | |
org-src-tab-acts-natively 1 | |
org-tag-alist '(("NOTES" . ?n) ("TASKS" . ?t) ("PROJECTS" . ?p)) | |
org-capture-templates '(("N" "Note" entry (file+headline (expand-file-name user-notes-file) "Notes") "*** %^{Title}\n%^{Text}\n\n" :empty-lines 1 :immediate-finish 1) | |
("T" "Task" entry (file+headline (expand-file-name user-notes-file) "Tasks") "*** TODO %^{Description}\n%^{Text}\n\n" :empty-lines 1 :immediate-finish 1)) | |
org-latex-default-class "article" | |
org-latex-with-hyperref nil | |
org-export-with-toc nil | |
org-export-with-tasks nil | |
org-export-with-todo-keywords nil | |
org-support-shift-select t | |
org-highlight-latex-and-related '(latex script entities) | |
org-odt-preferred-output-format "docx" | |
org-export-with-smart-quotes t) | |
(add-to-list 'org-latex-packages-alist '("" "listings")) | |
(add-to-list 'org-latex-packages-alist '("" "color")) | |
(add-to-list 'org-latex-packages-alist '("" "bussproofs")) | |
(org-babel-do-load-languages 'org-babel-do-load-languages '((emacs-lisp . t) | |
(sh . t) | |
(latex-mode . t))) | |
(defun surrounded-by-p (char) | |
(save-excursion | |
(and (forward-word -1) | |
(equal char (char-before)) | |
(forward-word 1) | |
(equal char (char-after))))) | |
(defun surround-word (char &optional force) | |
(save-excursion | |
(if (not (surrounded-by-p char)) | |
(progn | |
(forward-word 1) | |
(insert char) | |
(forward-word -1) | |
(insert char) | |
t) | |
(forward-word 1) | |
(delete-char 1) | |
(forward-word -1) | |
(delete-char -1) | |
nil))) | |
(defmacro org-propertise-word (prop char) | |
`(defun ,(intern (format "org-%s-word" prop)) (&optional force) | |
(interactive "p") | |
(surround-word ,char force))) | |
(org-propertise-word bold ?*) | |
(org-propertise-word italic ?/) | |
(org-propertise-word underline ?_) | |
(org-propertise-word verbatim ?~) | |
(org-propertise-word teletype ?=) | |
(define-skeleton org-paper-skeleton | |
"Insert an org-mode skeleton." | |
"Title: " | |
"#+TITLE: " str | "Title" "\n" | |
"#+AUTHOR: Matthew Ball\n" | |
"#+OPTIONS: date:nil num:nil" | |
"\n" | |
"* Introduction\n" | |
"* Footnotes\n") | |
(defun custom-org-bindings () | |
(define-key org-mode-map (kbd "C-c b") #'org-bold-word) | |
(define-key org-mode-map (kbd "C-c i") #'org-italic-word) | |
(define-key org-mode-map (kbd "C-c u") #'org-underline-word) | |
(define-key org-mode-map (kbd "C-c v") #'org-verbatim-word) | |
(define-key org-mode-map (kbd "C-c t") #'org-teletype-word) | |
(define-key org-mode-map (kbd "C-c s") #'org-paper-skeleton)) | |
(defun custom-org-mode () | |
(custom-org-bindings) | |
(org-indent-mode) | |
(org-toggle-pretty-entities)) | |
(add-hook 'org-mode-hook #'custom-org-mode) | |
(add-hook 'org-agenda-mode-hook #'hl-line-mode 'append) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment