Moved org commands to the main leader, under SPC o

This allows me to have the local-leader be programming-specific,
which means that I can standardize on the hierarchy there.
This commit is contained in:
Howard Abrams 2023-10-12 15:51:12 -07:00
parent 06b7219f94
commit f71b4f8ad9
4 changed files with 106 additions and 103 deletions

View file

@ -665,27 +665,6 @@ Here is the script I tangle to =~/bin/en=:
rm -f $FILE rm -f $FILE
#+end_src #+end_src
* Keybindings
Along with kicking off the org-capture, I want to be able to clock-in and out:
#+begin_src emacs-lisp
(with-eval-after-load 'ha-org
(ha-local-leader :keymaps 'org-mode-map
"X" '("org capture" . org-capture)
"c" '(:ignore t :which-key "clocks")
"c i" '("clock in" . org-clock-in)
"c l" '("clock in last" . org-clock-in-last)
"c o" '("clock out" . org-clock-out)
"c c" '("cancel" . org-clock-cancel)
"c d" '("mark default task" . org-clock-mark-default-task)
"c e" '("modify effort" . org-clock-modify-effort-estimate)
"c E" '("set effort" . org-set-effort)
"c g" '("goto clock" . org-clock-goto)
"c r" '("resolve clocks" . org-resolve-clocks)
"c R" '("clock report" . org-clock-report)
"c t" '("eval range" . org-evaluate-time-range)
"c =" '("timestamp up" . org-clock-timestamps-up)
"c -" '("timestamp down" . org-clock-timestamps-down)))
#+end_src
* Technical Artifacts :noexport: * Technical Artifacts :noexport:
Let's provide a name so we can =require= this file. Let's provide a name so we can =require= this file.
#+begin_src emacs-lisp :exports none #+begin_src emacs-lisp :exports none

View file

@ -245,8 +245,8 @@ This function does the heavy lifting. Note that I will need another function to
Bind these functions to the /local/ mode key sequence: Bind these functions to the /local/ mode key sequence:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(with-eval-after-load 'ha-org (with-eval-after-load 'ha-org
(ha-local-leader :keymaps 'org-mode-map (ha-leader :keymaps 'org-mode-map
"y" 'ha-org-yank-clipboard)) "o y" '("format yank" . ha-org-yank-clipboard)))
#+end_src #+end_src
* Technical Artifacts :noexport: * Technical Artifacts :noexport:
Let's provide a name so we can =require= this file: Let's provide a name so we can =require= this file:

View file

@ -167,18 +167,18 @@ Another helper function for the content of website is to make sure to update =in
Make it easy to publish all or just some of my website: Make it easy to publish all or just some of my website:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(with-eval-after-load 'ha-org (with-eval-after-load 'ha-org
(ha-local-leader 'org-mode-map (ha-leader :keymaps 'org-mode-map
"p" '(:ignore t :which-key "publishing") ;; "p" '(:ignore t :which-key "publishing")
"p a" '("all" . org-publish-all) "o p a" '("all" . org-publish-all)
"p p" '("project" . org-publish-project))) "o p p" '("project" . org-publish-project)))
#+end_src #+end_src
And let's put a /leader key/ sequence for my favorite file on my website: And let's put a /leader key/ sequence for my favorite file on my website:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(ha-leader (ha-leader
"f h" '(:ignore t :which-key "howards") "f h" '(:ignore t :which-key "howards")
"f h i" '("website index" . (lambda () "f h i" '("website index" . (lambda ()
(find-file (expand-file-name "index.org" "~/website"))))) (find-file (expand-file-name "index.org" "~/website")))))
#+end_src #+end_src
* Technical Artifacts :noexport: * Technical Artifacts :noexport:
Let's =provide= a name so we can =require= it: Let's =provide= a name so we can =require= it:

View file

@ -535,7 +535,83 @@ Global keybindings available to all file buffers:
(ha-leader (ha-leader
"o l" '("store link" . org-store-link) "o l" '("store link" . org-store-link)
"o x" '("org capture" . org-capture) "o x" '("org capture" . org-capture)
"o c" '("clock out" . org-clock-out)) "o C" '("clock out" . org-clock-out))
(ha-leader :keymaps 'org-mode-map
"o e" '("exports" . org-export-dispatch)
"o L" '("insert link" . org-insert-link)
"o P" '("set property" . org-set-property)
"o g" '("set tags" . org-set-tags-command)
"o t" '("todo" . org-todo)
"o T" '("list todos" . org-todo-list)
"o i" '(:ignore t :which-key "insert")
"o i i" '("item" . org-insert-item)
"o i I" '("insert id" . org-id-get-create)
"o i l" '("link" . org-insert-link)
"o i d" '("drawer" . org-insert-drawer)
"o i h" '("heading" . org-insert-heading)
"o i s" '("subheading" . org-insert-subheading)
"o o" '(:ignore t :which-key "toggles")
"o o h" '("heading" . org-toggle-heading)
"o o i" '("item" . org-toggle-item)
"o o x" '("checkbox" . org-toggle-checkbox)
"o o I" '("images" . org-toggle-inline-images)
"o o m" '("markup" . (lambda () (interactive)
(setq org-hide-emphasis-markers (not org-hide-emphasis-markers)) (font-lock-update)))
"o /" '("agenda" . consult-org-agenda)
"o '" '("edit" . org-edit-special)
"o *" '("C-c *" . org-ctrl-c-star)
"o +" '("C-c -" . org-ctrl-c-minus)
"o c" '(:ignore t :which-key "clocks")
"o c i" '("clock in" . org-clock-in)
"o c l" '("clock in last" . org-clock-in-last)
"o c o" '("clock out" . org-clock-out)
"o c c" '("cancel" . org-clock-cancel)
"o c d" '("mark default task" . org-clock-mark-default-task)
"o c e" '("modify effort" . org-clock-modify-effort-estimate)
"o c E" '("set effort" . org-set-effort)
"o c g" '("goto clock" . org-clock-goto)
"o c r" '("resolve clocks" . org-resolve-clocks)
"o c R" '("clock report" . org-clock-report)
"o c t" '("eval range" . org-evaluate-time-range)
"o c =" '("timestamp up" . org-clock-timestamps-up)
"o c -" '("timestamp down" . org-clock-timestamps-down)
"o d" '(:ignore t :which-key "dates")
"o d s" '("schedule" . org-schedule)
"o d d" '("deadline" . org-deadline)
"o d t" '("timestamp" . org-time-stamp)
"o d T" '("inactive time" . org-time-stamp-inactive)
"o b" '(:ignore t :which-key "tables")
"o b -" '("insert hline" . org-table-insert-hline)
"o b a" '("align" . org-table-align)
"o b b" '("blank field" . org-table-blank-field)
"o b c" '("create teable" . org-table-create-or-convert-from-region)
"o b e" '("edit field" . org-table-edit-field)
"o b f" '("edit formula" . org-table-edit-formulas)
"o b h" '("field info" . org-table-field-info)
"o b s" '("sort lines" . org-table-sort-lines)
"o b r" '("recalculate" . org-table-recalculate)
"o b d" '(:ignore t :which-key "delete")
"o b d c" '("delete column" . org-table-delete-column)
"o b d r" '("delete row" . org-table-kill-row)
"o b i" '(:ignore t :which-key "insert")
"o b i c" '("insert column" . org-table-insert-column)
"o b i h" '("insert hline" . org-table-insert-hline)
"o b i r" '("insert row" . org-table-insert-row)
"o b i H" '("insert hline ↓" . org-table-hline-and-move)
"o n" '(:ignore t :which-key "narrow")
"o n s" '("subtree" . org-narrow-to-subtree)
"o n b" '("block" . org-narrow-to-block)
"o n e" '("element" . org-narrow-to-element)
"o n w" '("widen" . widen))
#+end_src #+end_src
Bindings specific to org files: Bindings specific to org files:
@ -547,58 +623,6 @@ Bindings specific to org files:
"gk" '("prev heading" . #'org-backward-heading-same-level) "gk" '("prev heading" . #'org-backward-heading-same-level)
"gb" '("next block" . #'org-next-block) "gb" '("next block" . #'org-next-block)
"gB" '("prev block" . #'org-previous-block)) "gB" '("prev block" . #'org-previous-block))
(ha-local-leader :keymaps 'org-mode-map
"e" '("exports" . org-export-dispatch)
"I" '("insert id" . org-id-get-create)
"l" '("insert link" . org-insert-link)
"N" '("store link" . org-store-link)
"P" '("set property" . org-set-property)
"q" '("set tags" . org-set-tags-command)
"t" '("todo" . org-todo)
"T" '("list todos" . org-todo-list)
"h" '("toggle heading" . org-toggle-heading)
"i" '("toggle item" . org-toggle-item)
"x" '("toggle checkbox" . org-toggle-checkbox)
"." '("goto heading" . consult-org-heading)
"/" '("agenda" . consult-org-agenda)
"'" '("edit" . org-edit-special)
"*" '("C-c *" . org-ctrl-c-star)
"+" '("C-c -" . org-ctrl-c-minus)
"d" '(:ignore t :which-key "dates")
"d s" '("schedule" . org-schedule)
"d d" '("deadline" . org-deadline)
"d t" '("timestamp" . org-time-stamp)
"d T" '("inactive time" . org-time-stamp-inactive)
"b" '(:ignore t :which-key "tables")
"b -" '("insert hline" . org-table-insert-hline)
"b a" '("align" . org-table-align)
"b b" '("blank field" . org-table-blank-field)
"b c" '("create teable" . org-table-create-or-convert-from-region)
"b e" '("edit field" . org-table-edit-field)
"b f" '("edit formula" . org-table-edit-formulas)
"b h" '("field info" . org-table-field-info)
"b s" '("sort lines" . org-table-sort-lines)
"b r" '("recalculate" . org-table-recalculate)
"b d" '(:ignore t :which-key "delete")
"b d c" '("delete column" . org-table-delete-column)
"b d r" '("delete row" . org-table-kill-row)
"b i" '(:ignore t :which-key "insert")
"b i c" '("insert column" . org-table-insert-column)
"b i h" '("insert hline" . org-table-insert-hline)
"b i r" '("insert row" . org-table-insert-row)
"b i H" '("insert hline ↓" . org-table-hline-and-move)
"n" '(:ignore t :which-key "narrow")
"n s" '("subtree" . org-narrow-to-subtree)
"n b" '("block" . org-narrow-to-block)
"n e" '("element" . org-narrow-to-element)
"n w" '("widen" . widen))
#+end_src #+end_src
* Supporting Packages * Supporting Packages
** Exporters ** Exporters
@ -614,8 +638,8 @@ I have a special version of tweaked [[file:elisp/ox-confluence.el][Confluence ex
:after org :after org
:straight nil ; Located in my "elisp" directory :straight nil ; Located in my "elisp" directory
:config :config
(ha-local-leader :keymaps 'org-mode-map (ha-leader :keymaps 'org-mode-map
"E" '("to confluence" . ox-export-to-confluence))) "o E" '("to confluence" . ox-export-to-confluence)))
#+end_src #+end_src
And Graphviz configuration using [[https://github.com/ppareit/graphviz-dot-mode][graphviz-dot-mode]]: And Graphviz configuration using [[https://github.com/ppareit/graphviz-dot-mode][graphviz-dot-mode]]:
@ -718,13 +742,13 @@ For this to work, we use [[https://www.emacswiki.org/emacs/FlySpell][flyspell]]
"['\x2019]" nil ("-B") nil utf-8))) "['\x2019]" nil ("-B") nil utf-8)))
:config :config
(ha-local-leader :keymaps 'text-mode-map (ha-leader :keymaps 'text-mode-map
"s" '(:ignore t :which-key "spellcheck") "S" '(:ignore t :which-key "spellcheck")
"s s" '("correct last misspell" . ha-fix-last-spelling) "S s" '("correct last misspell" . ha-fix-last-spelling)
"s b" '("check buffer" . flyspell-buffer) "S b" '("check buffer" . flyspell-buffer)
"s c" '("correct word" . flyspell-auto-correct-word) "S c" '("correct word" . flyspell-auto-correct-word)
"s p" '("previous misspell" . evil-prev-flyspell-error) "S p" '("previous misspell" . evil-prev-flyspell-error)
"s n" '("next misspell" . evil-next-flyspell-error)) "S n" '("next misspell" . evil-next-flyspell-error))
;; Let's use M-TAB for something else ... ;; Let's use M-TAB for something else ...
(define-key flyspell-mode-map (kbd "M-TAB") nil)) (define-key flyspell-mode-map (kbd "M-TAB") nil))
@ -760,21 +784,21 @@ Of course I need a thesaurus, and I'm installing [[https://github.com/SavchenkoV
(use-package powerthesaurus (use-package powerthesaurus
:bind ("s-t" . powerthesaurus-lookup-dwim) :bind ("s-t" . powerthesaurus-lookup-dwim)
:config :config
(ha-local-leader :keymaps 'text-mode-map (ha-leader :keymaps 'text-mode-map
"s t" '("thesaurus" . powerthesaurus-lookup-dwim) "S t" '("thesaurus" . powerthesaurus-lookup-dwim)
"s s" '("synonyms" . powerthesaurus-lookup-synonyms-dwim) "S s" '("synonyms" . powerthesaurus-lookup-synonyms-dwim)
"s a" '("antonyms" . powerthesaurus-lookup-antonyms-dwim) "S a" '("antonyms" . powerthesaurus-lookup-antonyms-dwim)
"s r" '("related" . powerthesaurus-lookup-related-dwim) "S r" '("related" . powerthesaurus-lookup-related-dwim)
"s S" '("sentence" . powerthesaurus-lookup-sentences-dwim))) "S S" '("sentence" . powerthesaurus-lookup-sentences-dwim)))
#+end_src #+end_src
The key-bindings, keystrokes, and key-connections work well with ~M-T~ (notice the Shift), but to jump to specifics, we use a leader. Since the /definitions/ do not work, so let's use abo-abo's [[https://github.com/abo-abo/define-word][define-word]] project: The key-bindings, keystrokes, and key-connections work well with ~M-T~ (notice the Shift), but to jump to specifics, we use a leader. Since the /definitions/ do not work, so let's use abo-abo's [[https://github.com/abo-abo/define-word][define-word]] project:
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package define-word (use-package define-word
:config :config
(ha-local-leader :keymaps 'text-mode-map (ha-leader :keymaps 'text-mode-map
"s d" '("define this" . define-word-at-point) "S d" '("define this" . define-word-at-point)
"s D" '("define word" . define-word))) "S D" '("define word" . define-word)))
#+end_src #+end_src
After my enamoring of Noah Websters 1913 dictionary (originally due to reading [[https://janusworx.com/blog/thank-god-for-noah/][this essay]] by Mario Jason Braganza who referred to James Somers original [[https://jsomers.net/blog/dictionary][2014 blog entry]]), I easily followed the instructions from [[https://github.com/ponychicken/WebsterParser][WebsterParser]], a Github project, with the dictionary: After my enamoring of Noah Websters 1913 dictionary (originally due to reading [[https://janusworx.com/blog/thank-god-for-noah/][this essay]] by Mario Jason Braganza who referred to James Somers original [[https://jsomers.net/blog/dictionary][2014 blog entry]]), I easily followed the instructions from [[https://github.com/ponychicken/WebsterParser][WebsterParser]], a Github project, with the dictionary:
@ -792,8 +816,8 @@ Now that Im mostly on version 28 and above of Emacs, we can take advantage of
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq dictionary-server "dict.org") (setq dictionary-server "dict.org")
(ha-local-leader :keymaps 'text-mode-map (ha-leader :keymaps 'text-mode-map
"s d" '("define word" . dictionary-search)) "S d" '("define word" . dictionary-search))
#+end_src #+end_src
Once in the dictionary buffer, acquiesce these keybindings: Once in the dictionary buffer, acquiesce these keybindings:
- ~q~ close the dictionary buffer - ~q~ close the dictionary buffer