Split Org config into multiple blocks; remove unused code; update prefixes

This commit is contained in:
contrapunctus 2022-01-25 14:12:19 +05:30
parent 5b1c670b1b
commit 05ea748538
1 changed files with 45 additions and 69 deletions

114
init.org
View File

@ -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"