[Emacs] Move custom org functions in org configuration
Move `phundrak/toggle-org-src-window-split' to org configuration Add org emphasis functions and their keybindings
This commit is contained in:
parent
d3d5e12222
commit
ece09caca8
@ -642,26 +642,6 @@ document.
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functionsyshkel6184j0
|
||||
:END:
|
||||
*** Emphasize text :noexport:
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functions-Emphasize-textkilkel6184j0
|
||||
:END:
|
||||
| / | <c> | <c> |
|
||||
| Emphasis | Character | Character code |
|
||||
|----------+-----------+----------------|
|
||||
| Bold | ~*~ | 42 |
|
||||
| Italic | ~/~ | 47 |
|
||||
| Code | ~~~ | 126 |
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun org-mode-emphasize-bold ()
|
||||
"Emphasize as bold the current region.
|
||||
|
||||
See also `org-emphasize'."
|
||||
(interactive)
|
||||
(org-emphasize 42))
|
||||
#+end_src
|
||||
|
||||
*** Handle new windows
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functions-Handle-new-windowst7pkel6184j0
|
||||
@ -690,26 +670,6 @@ focus the new window immediately.
|
||||
(delete-window)))
|
||||
#+end_src
|
||||
|
||||
*** ~phundrak/toggle-org-src-window-split~
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functions-phundrak-toggle-org-src-window-splito2tkel6184j0
|
||||
:END:
|
||||
#+begin_src emacs-lisp
|
||||
(defun phundrak/toggle-org-src-window-split ()
|
||||
"This function allows the user to toggle the behavior of
|
||||
`org-edit-src-code'. If the variable `org-src-window-setup' has
|
||||
the value `split-window-right', then it will be changed to
|
||||
`split-window-below'. Otherwise, it will be set back to
|
||||
`split-window-right'"
|
||||
(interactive)
|
||||
(if (equal org-src-window-setup 'split-window-right)
|
||||
(setq org-src-window-setup 'split-window-below)
|
||||
(setq org-src-window-setup 'split-window-right))
|
||||
(message "Org-src buffers will now split %s"
|
||||
(if (equal org-src-window-setup 'split-window-right)
|
||||
"vertically"
|
||||
"horizontally")))
|
||||
#+end_src
|
||||
|
||||
* Package Management
|
||||
:PROPERTIES:
|
||||
@ -4170,6 +4130,7 @@ extended however we like!
|
||||
<<org-behavior-electric>>
|
||||
<<org-capture-target-files>>
|
||||
<<org-capture-templates>>
|
||||
<<org-create-emphasis-functions()>>
|
||||
<<org-babel-load-languages>>
|
||||
<<org-use-sub-superscripts>>
|
||||
<<org-latex-compiler>>
|
||||
@ -4552,6 +4513,104 @@ The capture templates are set like so:
|
||||
<<org-capture-shortcuts-gen()>>))
|
||||
#+end_src
|
||||
|
||||
*** Custom functions
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Packages-Configuration-Org-mode-Custom-functions-h3v07sl02ej0
|
||||
:END:
|
||||
**** Emphasize text
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functions-Emphasize-textkilkel6184j0
|
||||
:END:
|
||||
Sometimes, I want to emphasize some text in my org-mode documents.
|
||||
It’s very possible to just go to the begining of the chosen text, add
|
||||
the marker, then go to the end of the text than needs emphasis and add
|
||||
another marker, and I’m sure most people are fine with that. But I
|
||||
also like being able to select a region and hit a keybind to emphasize
|
||||
it that way. The table [[org-emphasis-character]] lists the emphasis
|
||||
characters in org-mode, their role, and the character code of each
|
||||
emphasis character. From that, creating functions that emphasize a
|
||||
selected text is quite easy.
|
||||
|
||||
#+name: org-emphasis-character
|
||||
| Emphasis | Character | Character code |
|
||||
|----------------+-----------+----------------|
|
||||
| bold | ~*~ | 42 |
|
||||
| italic | ~/~ | 47 |
|
||||
| underline | ~_~ | 95 |
|
||||
| verbatim | ~=~ | 61 |
|
||||
| code | ~~~ | 126 |
|
||||
| strike-through | ~+~ | 43 |
|
||||
|
||||
#+name: org-create-emphasis-functions
|
||||
#+header: :tangle no :exports results
|
||||
#+header: :wrap "src emacs-lisp :tangle no :exports code"
|
||||
#+begin_src emacs-lisp :var emphasis-list=org-emphasis-character
|
||||
(mapconcat (lambda (emphasis)
|
||||
(let ((type (car emphasis))
|
||||
(code (nth 2 emphasis)))
|
||||
(format "(defun org-emphasize-%s ()
|
||||
\"Emphasize as %s the current region.\"
|
||||
(interactive)
|
||||
(org-emphasize %s))"
|
||||
type
|
||||
type
|
||||
code)))
|
||||
emphasis-list
|
||||
"\n")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS: org-create-emphasis-functions
|
||||
#+begin_src emacs-lisp :tangle no :exports code
|
||||
(defun org-emphasize-bold ()
|
||||
"Emphasize as bold the current region."
|
||||
(interactive)
|
||||
(org-emphasize 42))
|
||||
(defun org-emphasize-italic ()
|
||||
"Emphasize as italic the current region."
|
||||
(interactive)
|
||||
(org-emphasize 47))
|
||||
(defun org-emphasize-underline ()
|
||||
"Emphasize as underline the current region."
|
||||
(interactive)
|
||||
(org-emphasize 95))
|
||||
(defun org-emphasize-verbatim ()
|
||||
"Emphasize as verbatim the current region."
|
||||
(interactive)
|
||||
(org-emphasize 61))
|
||||
(defun org-emphasize-code ()
|
||||
"Emphasize as code the current region."
|
||||
(interactive)
|
||||
(org-emphasize 126))
|
||||
(defun org-emphasize-strike-through ()
|
||||
"Emphasize as strike-through the current region."
|
||||
(interactive)
|
||||
(org-emphasize 43))
|
||||
#+end_src
|
||||
|
||||
You can find the keybinds for these functions in the chapter
|
||||
§[[#Packages-Configuration-Org-mode-Keybindingsv0e5fl6184j0]].
|
||||
|
||||
**** ~phundrak/toggle-org-src-window-split~
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Custom-Elisp-Org-Functions-phundrak-toggle-org-src-window-splito2tkel6184j0
|
||||
:END:
|
||||
#+begin_src emacs-lisp
|
||||
(defun phundrak/toggle-org-src-window-split ()
|
||||
"This function allows the user to toggle the behavior of
|
||||
`org-edit-src-code'. If the variable `org-src-window-setup' has
|
||||
the value `split-window-right', then it will be changed to
|
||||
`split-window-below'. Otherwise, it will be set back to
|
||||
`split-window-right'"
|
||||
(interactive)
|
||||
(if (equal org-src-window-setup 'split-window-right)
|
||||
(setq org-src-window-setup 'split-window-below)
|
||||
(setq org-src-window-setup 'split-window-right))
|
||||
(message "Org-src buffers will now split %s"
|
||||
(if (equal org-src-window-setup 'split-window-right)
|
||||
"vertically"
|
||||
"horizontally")))
|
||||
#+end_src
|
||||
|
||||
*** Exporters
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Packages-Configuration-Org-mode-File-exportik95fl6184j0
|
||||
@ -4848,7 +4907,14 @@ Let’s now define some keybinds for inserting stuff in our org buffer:
|
||||
| i | nil | insert |
|
||||
| ib | org-insert-structure-template | |
|
||||
| id | org-insert-drawer | |
|
||||
| ie | org-set-effort | |
|
||||
| ie | nil | emphasis |
|
||||
| ieb | org-emphasize-bold | |
|
||||
| iec | org-emphasize-code | |
|
||||
| iei | org-emphasize-italic | |
|
||||
| ies | org-emphasize-strike-through | |
|
||||
| ieu | org-emphasize-underline | |
|
||||
| iev | org-emphasize-verbatim | |
|
||||
| iE | org-set-effort | |
|
||||
| if | org-footnote-new | |
|
||||
| ih | org-insert-heading | |
|
||||
| iH | counsel-org-link | |
|
||||
|
Loading…
Reference in New Issue
Block a user