Skip to content

Instantly share code, notes, and snippets.

@matthew-ball
Created September 29, 2017 01:58
Show Gist options
  • Save matthew-ball/4f5b1e2bb0fc478e6b7c02f82b7aa4c0 to your computer and use it in GitHub Desktop.
Save matthew-ball/4f5b1e2bb0fc478e6b7c02f82b7aa4c0 to your computer and use it in GitHub Desktop.
(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