Split Org config into multiple blocks; remove unused code; update prefixes
This commit is contained in:
parent
5b1c670b1b
commit
05ea748538
114
init.org
114
init.org
|
@ -783,7 +783,7 @@ _u_: next word ^_l_: edit lines^ _s_: next whole symbol
|
|||
("L" my-literate-elisp-hydra/body "literate-elisp")
|
||||
("p" org-set-property "property")
|
||||
("l" my-org-hydra-block/body "source block")
|
||||
("t" my-org-hydra-set-tags "tags")
|
||||
("t" my-org-set-tags "tags")
|
||||
("C-t" org-todo "todo" :color red)
|
||||
("v" my-org-hydra-nav/body "navigation")
|
||||
("b" (my-compile-org-lp) "compile")
|
||||
|
@ -3822,7 +3822,6 @@ SLIME opens CLHS links in Firefox, but I'd rather open them in Tor Browser; Tor
|
|||
;; "C-m" 'org-return-indent
|
||||
"C-c C-9" 'org-mark-ring-goto
|
||||
"C-c C-/" 'org-sparse-tree
|
||||
"M-w" 'cp-copy-line-or-link
|
||||
"C-M-x" 'cp/eval-sexp
|
||||
"C-c C-o" 'my-org-open
|
||||
;; boon
|
||||
|
@ -3865,30 +3864,40 @@ SLIME opens CLHS links in Firefox, but I'd rather open them in Tor Browser; Tor
|
|||
(org-link-set-parameters "gemini" :export #'my-export-gemini-link)
|
||||
(org-link-set-parameters "xmpp" :export #'my-export-xmpp-link))
|
||||
|
||||
;; https://lists.gnu.org/archive/html/emacs-orgmode/2018-02/msg00082.html
|
||||
(defun my-export-link-helper (link desc format)
|
||||
(cond
|
||||
((eq format 'html)
|
||||
(format "<a href=\"%s\">%s</a>" link desc))
|
||||
((eq format 'latex)
|
||||
;; (format "\\href{%s}{%s}" link desc)
|
||||
(format "\\url{%s}" link))
|
||||
(t ;; `ascii', `md', `hugo', etc.
|
||||
(format "[%s](%s)" desc link))))
|
||||
(defun contrapunctus-disable-nameless-key ()
|
||||
(define-key nameless-mode-map (kbd "C-c C--") nil))
|
||||
#+END_SRC
|
||||
|
||||
*** gemini: and xmpp: links
|
||||
https://lists.gnu.org/archive/html/emacs-orgmode/2018-02/msg00082.html
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-export-link-helper (link desc format)
|
||||
(cond
|
||||
((eq format 'html)
|
||||
(format "<a href=\"%s\">%s</a>" link desc))
|
||||
((eq format 'latex)
|
||||
;; (format "\\href{%s}{%s}" link desc)
|
||||
(format "\\url{%s}" link))
|
||||
(t ;; `ascii', `md', `hugo', etc.
|
||||
(format "[%s](%s)" desc link))))
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-export-gemini-link (link desc format)
|
||||
"Create export version of LINK and DESC to FORMAT."
|
||||
(let ((link (concat "gemini:" link)))
|
||||
(my-export-link-helper link desc format)))
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-export-xmpp-link (link desc format)
|
||||
"Create export version of LINK and DESC to FORMAT."
|
||||
(let ((link (concat "xmpp:" link)))
|
||||
(my-export-link-helper link desc format)))
|
||||
#+END_SRC
|
||||
|
||||
(defun contrapunctus-disable-nameless-key ()
|
||||
(define-key nameless-mode-map (kbd "C-c C--") nil))
|
||||
|
||||
*** my-org-insert-block
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-org-insert-block (type &optional lang header-args ask)
|
||||
"Insert block of TYPE at point, or at beginning and end of region.
|
||||
TYPE should be an Org block type, e.g. SRC, QUOTE, etc.
|
||||
|
@ -3934,7 +3943,9 @@ or with ASK, prompt the user for a language."
|
|||
(insert "\n" end-string)
|
||||
(goto-char point-inside-block)
|
||||
(insert indent))))))
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; (use-package org-src-mode
|
||||
;; :hook (org-src-mode . (lambda () (when (derived-mode-p 'emacs-lisp-mode)))))
|
||||
|
||||
|
@ -3945,7 +3956,10 @@ or with ASK, prompt the user for a language."
|
|||
;; ;; todo - check if we are on a heading
|
||||
;; (org-forward-heading-same-level)
|
||||
;; ())
|
||||
#+END_SRC
|
||||
|
||||
*** my-org-open
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; I dislike having to navigate within a line to reach a link - with
|
||||
;; this command I just need to be on the same line as the link.
|
||||
(defun my-org-open (&optional arg reference-buffer)
|
||||
|
@ -3954,57 +3968,10 @@ or with ASK, prompt the user for a language."
|
|||
(unless (looking-at-p (rx-to-string '(or "http" "[")))
|
||||
(org-next-link))
|
||||
(org-open-at-point))
|
||||
#+END_SRC
|
||||
|
||||
(defun cp-copy-line-or-link (prefix-arg)
|
||||
"Copy address of org-mode link after point, ignoring whitespace,
|
||||
link description (if any) and org-mode header and list syntax. If
|
||||
not before a link, or with a prefix arg, call
|
||||
`whole-line-or-region-kill-ring-save' instead.
|
||||
|
||||
BUG - improper behaviour with checkboxes.
|
||||
2018-03-17T21:15:17+0530 - hopefully fixed now."
|
||||
(interactive "P")
|
||||
(let ((point-a (point)))
|
||||
(cl-flet ((copy-to-closing-bracket
|
||||
()
|
||||
(let ((point-b (point)))
|
||||
(re-search-forward "\\]")
|
||||
(copy-region-as-kill point-b
|
||||
(- (point) 1)))))
|
||||
|
||||
(if (save-excursion
|
||||
(or (use-region-p)
|
||||
prefix-arg
|
||||
(cp/re-search-line "\\[[-X ]\\]")))
|
||||
(whole-line-or-region-kill-ring-save prefix-arg)
|
||||
|
||||
(cond ( ;; (cp/org-link-ahead-p)
|
||||
(cp/re-search-line "\\[")
|
||||
;; (if (looking-at "\\[")
|
||||
;; (forward-char))
|
||||
(forward-char)
|
||||
(copy-to-closing-bracket)
|
||||
(goto-char point-a))
|
||||
|
||||
( ;; (cp/org-link-ahead-p 'implicit)
|
||||
(cp/re-search-line "http")
|
||||
(backward-word)
|
||||
(let ((point-b (point)))
|
||||
(re-search-forward (rx (or eol (and printing " "))))
|
||||
(copy-region-as-kill point-b
|
||||
(point)))
|
||||
(goto-char point-a))
|
||||
|
||||
;; TODO - org-previous-link will land you at the start
|
||||
;; of the DESCRIPTION of the previous link, if it has
|
||||
;; one, but to the user it will look like they are at
|
||||
;; the start of the link. Add a case to handle this.
|
||||
|
||||
;; Does not work if there is an org TODO marker in a
|
||||
;; header.
|
||||
|
||||
(t (whole-line-or-region-kill-ring-save prefix-arg)))))))
|
||||
|
||||
*** org-table-convert-tsv
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun cp/org-table-convert-tsv ()
|
||||
(interactive)
|
||||
(with-output-to-temp-buffer "cp/org-table-convert-tsv"
|
||||
|
@ -4015,8 +3982,11 @@ BUG - improper behaviour with checkboxes.
|
|||
(with-current-buffer "cp/org-table-convert-tsv"
|
||||
(remove-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
(write-file (read-from-minibuffer "Output filename: "))))
|
||||
#+END_SRC
|
||||
|
||||
(defun my-org-hydra-set-tags ()
|
||||
*** my-org-set-tags - using completing-read-multiple for setting tags
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun my-org-set-tags ()
|
||||
(interactive)
|
||||
(let ((all-tags (org-get-buffer-tags))
|
||||
(current-tags (org-get-tags)))
|
||||
|
@ -4027,7 +3997,10 @@ BUG - improper behaviour with checkboxes.
|
|||
"Tag: " all-tags nil 'confirm
|
||||
(mapconcat #'identity current-tags ",")
|
||||
'org-tags-history)))))
|
||||
#+END_SRC
|
||||
|
||||
***
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun cp/marked-files->markup-links-org (filenames)
|
||||
(mapcar (lambda (filename)
|
||||
(let ((link-pre "[[file:")
|
||||
|
@ -4036,18 +4009,21 @@ BUG - improper behaviour with checkboxes.
|
|||
filenames))
|
||||
#+END_SRC
|
||||
|
||||
*** my-org-insert-timestamp
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun contrapunctus-org-insert-timestamp ()
|
||||
(defun my-org-insert-timestamp ()
|
||||
(save-excursion
|
||||
(org-set-property "CREATED" (format-time-string "%FT%T%z"))))
|
||||
(use-package org-indent
|
||||
:hook (org-mode . org-indent-mode))
|
||||
|
||||
(use-package ox-texinfo
|
||||
:hook (org-mode . (require 'ox-texinfo))) ;; ideally, I'd run this in :before advice for org-export...
|
||||
(with-eval-after-load 'ox
|
||||
(require 'ox-texinfo)) ;; ideally, I'd load this in :before advice for org-export...
|
||||
#+END_SRC
|
||||
|
||||
*** load org-babel languages on demand
|
||||
From https://emacs.stackexchange.com/questions/20577/org-babel-load-all-languages-on-demand
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defadvice org-babel-execute-src-block (around load-language nil activate)
|
||||
"Load language if needed"
|
||||
|
|
Loading…
Reference in New Issue