2014-09-05 17:08:40 -04:00
|
|
|
(provide 'init-org)
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;; Defuns
|
|
|
|
(defun my/org-insert-list-item ()
|
|
|
|
"Force insertion of org item"
|
|
|
|
(interactive)
|
|
|
|
(if (not (org-in-item-p))
|
|
|
|
(insert "\n- ")
|
|
|
|
(org-insert-item)))
|
|
|
|
|
|
|
|
(defun my/org-eol-call (fun)
|
|
|
|
"Go to end of line and call provided function"
|
|
|
|
(end-of-line)
|
|
|
|
(funcall fun)
|
|
|
|
(evil-append nil))
|
|
|
|
|
2014-08-21 03:33:30 -04:00
|
|
|
(defun my/org-surround (delim)
|
|
|
|
(insert delim) (save-excursion (insert delim)))
|
|
|
|
|
2014-08-26 07:25:51 -04:00
|
|
|
(defun set-buffer-file-format-to-opml ()
|
|
|
|
(when (string-match "\.opml$" (buffer-file-name))
|
|
|
|
(setq buffer-file-format '(opml))))
|
|
|
|
|
|
|
|
(defun opml-encode (begin end buffer)
|
|
|
|
"Export Org mode buffer to OPML."
|
|
|
|
(let ((org-export-show-temporary-export-buffer nil)
|
|
|
|
(name "*OPML Export Buffer*"))
|
|
|
|
(org-export-to-buffer 'opml name)
|
|
|
|
(erase-buffer)
|
|
|
|
(insert-buffer-substring (get-buffer name))
|
|
|
|
(point-max)))
|
|
|
|
|
2014-08-07 18:35:22 -04:00
|
|
|
;;
|
2014-09-20 16:54:04 -04:00
|
|
|
(use-package org)
|
|
|
|
|
|
|
|
(define-minor-mode evil-org-mode
|
|
|
|
"Buffer local minor mode for evil-org"
|
|
|
|
:init-value nil
|
|
|
|
:lighter " EvilOrg"
|
|
|
|
:keymap (make-sparse-keymap) ; defines evil-org-mode-map
|
|
|
|
:group 'evil-org)
|
|
|
|
|
|
|
|
;; Reset evil to ensure certain evil keybindings are prioritized
|
|
|
|
(add-hook 'org-mode-hook 'evil-org-mode)
|
|
|
|
(add-hook 'org-mode-hook 'flyspell-mode)
|
|
|
|
(add-hook 'org-mode-hook 'enable-hard-wrap)
|
|
|
|
(add-hook! 'org-mode-hook (evil-mode nil) (evil-mode 1))
|
|
|
|
|
|
|
|
(shut-up (load-library "ox-opml"))
|
|
|
|
|
2014-10-09 18:37:37 -04:00
|
|
|
;; Remove occur highlights on ESC in normal mode
|
|
|
|
(defadvice evil-force-normal-state (before evil-esc-org-remove-highlights activate)
|
|
|
|
(org-remove-occur-highlights))
|
|
|
|
|
2014-09-20 16:54:04 -04:00
|
|
|
(setq org-export-backends '(ascii html latex md opml))
|
|
|
|
(add-hook 'find-file-hooks 'set-buffer-file-format-to-opml)
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.opml$" . org-mode))
|
|
|
|
(add-to-list 'format-alist '(opml "Outline Processor Markup Language"
|
|
|
|
"<[?]xml version=\"1.0\"[^>]*[?]>[\n]?.*[\n]?.*[\n]?<opml version=\"[1|2].0\">"
|
|
|
|
"~/.emacs.d/elisp/org-opml/opml2org.py" opml-encode t))
|
|
|
|
|
|
|
|
(setq org-directory "~/Dropbox/notes"
|
|
|
|
org-default-notes-file "~/Dropbox/notes/notes.org"
|
|
|
|
org-mobile-inbox-for-pull "~/Dropbox/notes/notes.org"
|
|
|
|
org-mobile-directory "~/Dropbox/Apps/MobileOrg"
|
|
|
|
org-agenda-files '("~/Dropbox/notes")
|
|
|
|
org-src-tab-acts-natively t)
|
|
|
|
|
|
|
|
(setq org-completion-use-ido t
|
|
|
|
org-hide-leading-stars t
|
|
|
|
org-todo-keywords
|
|
|
|
'((sequence "TODO(t)" "|" "DONE(d)")
|
2014-10-09 18:37:37 -04:00
|
|
|
(sequence "DOING(s)" "PENDING(p)")
|
2014-09-20 16:54:04 -04:00
|
|
|
(sequence "|" "CANCELLED(c)")))
|
|
|
|
|
|
|
|
(org-babel-do-load-languages 'org-babel-load-languages
|
|
|
|
'((python . t)
|
|
|
|
(ruby . t)
|
|
|
|
(sh . t)
|
|
|
|
(matlab . t)
|
|
|
|
(latex . t)))
|
|
|
|
|
|
|
|
(setq org-tag-alist '(("@work" . ?b)
|
|
|
|
("@home" . ?h)
|
|
|
|
("@writing" . ?w)
|
|
|
|
("@errands" . ?e)
|
|
|
|
("@drawing" . ?d)
|
|
|
|
("@coding" . ?c)
|
|
|
|
("@phone" . ?p)
|
|
|
|
("@reading" . ?r)
|
|
|
|
("projects" . ?q)
|
|
|
|
("easy" . ?0)
|
|
|
|
("hard" . ?1)))
|
|
|
|
|
|
|
|
(setq org-capture-templates
|
|
|
|
'(("t" "TODO" entry (file+headline "~/Dropbox/notes/gtd.org" "Inbox") "* TODO %? %u\n%i")
|
|
|
|
("T" "TODO Someday" entry (file+headline "~/Dropbox/notes/gtd.org" "Someday") "* TODO %? %u :someday:\n%i")
|
|
|
|
("c" "Changelog" entry (file+headline (concat (projectile-project-root) "/CHANGELOG.org") "Unsorted") "** %u %? :unsorted:\n%i" :prepend t)
|
|
|
|
("i" "Invoice" entry (file+headline "~/Dropbox/notes/invoices.org" "Invoices") "** TODO %?\n%i" :prepend t)
|
|
|
|
("n" "Note" entry (file+datetree org-default-notes-file) "** %?\n%i")
|
|
|
|
("b" "Blog" entry (file+datetree "~/Dropbox/notes/blog.org") "** %i%?")
|
|
|
|
("j" "Journal" entry (file+datetree "~/Dropbox/notes/journal.org") "** %?%^g\nAdded: %U\n%i")
|
|
|
|
("a" "Trivia" entry (file "~/Dropbox/notes/trivia.org") "* %u %?\n%i" :prepend t)
|
|
|
|
("s" "Writing Scraps" entry (file "~/Dropbox/notes/writing.org") "* %u %?\n%i" :prepend t)
|
|
|
|
("v" "Vocab" entry (file "~/Dropbox/notes/vocab.org") "* %u %?\n%i" :prepend t)
|
|
|
|
("e" "Excerpt" entry (file "~/Dropbox/notes/excerpts.org") "* %u %?\n%i" :prepend t)))
|
|
|
|
|
|
|
|
(setq org-agenda-custom-commands
|
|
|
|
'(("x" agenda)
|
|
|
|
("y" agenda*)
|
|
|
|
("w" todo "WAITING")
|
|
|
|
("W" todo-tree "WAITING")
|
|
|
|
("to" todo)
|
|
|
|
("tp" tags "+Projects")
|
|
|
|
("tg" tags-todo "+gamedev")
|
|
|
|
("tw" tags-tree "+webdev")))
|