dotfiles/.emacs.d/lisp/init-org.el

58 lines
1.5 KiB
EmacsLisp

;;; init-ui.el --- Org-Mode Configuration File -*- lexical-binding: t -*-
;;; Commentary:
;; Some parts copied from prelude-org.el
;;; Code:
(use-package org
:ensure nil
:init
;; TODO - can we do this with sp-wrap-with-pair?
(defmacro define-org-wrap (name char)
(let ((cmd (intern (concat "org-" name))))
`(defun ,cmd
()
(interactive)
(if (use-region-p)
(let ((re (region-end))
(rb (region-beginning)))
(goto-char re)
(insert ,char)
(goto-char rb)
(insert ,char))
(beginning-of-thing 'symbol)
(insert ,char)
(end-of-thing 'symbol)
(insert ,char)))
`(bind-key ,(concat "C-c " (char-to-string char)) ',cmd org-mode-map)))
:custom
(org-log-done t)
(org-special-ctrl-k t)
(org-special-ctrl-a t)
:config
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(define-org-wrap "underline" ?_)
(define-org-wrap "bold" ?*)
(define-org-wrap "italic" ?/)
(define-org-wrap "verbatim" ?=)
(define-org-wrap "code" ?~)
(define-org-wrap "strike-through" ?+)
(org-babel-do-load-languages
'org-babel-load-languages
'((shell . t)
(elasticsearch . t)
(sql . t)))
:bind
("C-c l" . org-store-link)
("C-c a" . org-agenda)
("C-c b" . org-switchb)
;; TODO bindings
;("C-c r" . org-refile)
;("C-c c" . org-capture)
)
(use-package ob-async
:ensure t)
(provide 'init-org)
;;; init-org.el ends here