Rename and reorganize sections
This commit is contained in:
parent
b938893fbc
commit
bb2058d775
168
README.org
168
README.org
@ -1686,6 +1686,58 @@ nodes 1, 2, 3, and 4:\\
|
||||
#+include: worg-backend-dependent-execution-update.org
|
||||
How to include such figures as floats remains an open question.
|
||||
|
||||
*** [[https://orgmode.org/worg/dev/org-syntax-edited.html][Org Syntax]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:org-syntax
|
||||
:END:
|
||||
|
||||
Two tools to grok how [[https://orgmode.org/worg/dev/org-element-api.html][Org mode parsing]] works are the [[https://orgmode.org/worg/dev/org-syntax-edited.html][Org Syntax]] specification
|
||||
and the [[http://xahlee.info/emacs/emacs/elisp_parse_org_mode.html][Org mode parser tutorial]]. The [[https://orgmode.org/worg/dev/org-element-api.html][Org element parsing API]] boils down to three
|
||||
functions:
|
||||
1. The function [[https://orgmode.org/worg/dev/org-element-api.html#global][~org-element-parse-buffer~]] implements a fully recursive buffer
|
||||
parser that returns an abstract syntax tree.
|
||||
2. The functions [[https://orgmode.org/worg/dev/org-element-api.html#local][~org-element-at-point~ and ~org-element-context~]] return
|
||||
information on the document structure around point either at the element
|
||||
level or at the object level in case of ~org-element-context~.
|
||||
Listing [[lst:grok-org-element-tree]] improves the [[http://xahlee.info/emacs/emacs/elisp_parse_org_mode.html][Org mode parser tutorial]] by
|
||||
defining interactive wrappers that pretty print the results of those
|
||||
non-interactive =org-element= functions to an =Emacs-lisp= buffer.
|
||||
|
||||
#+caption[Grok how =org-element= parses your document]:
|
||||
#+caption: Grok how =org-element= parses your document.
|
||||
#+name: lst:grok-org-element-tree
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'org-element
|
||||
(when (autoload 'pp-display-expression "pp")
|
||||
(defconst grok-org-output
|
||||
"*Grok Org Element Output*"
|
||||
"Grok Org output buffer name.")
|
||||
|
||||
(defun grok-org-element-at-point ()
|
||||
(interactive)
|
||||
(pp-display-expression
|
||||
(org-element-at-point) grok-org-output))
|
||||
|
||||
(defun grok-org-element-context ()
|
||||
(interactive)
|
||||
(pp-display-expression
|
||||
(org-element-context) grok-org-output))
|
||||
|
||||
(defun grok-org-element-parse-buffer ()
|
||||
(interactive)
|
||||
(let ((what (completing-read
|
||||
"granularity: "
|
||||
'(headline element greater-element object)
|
||||
nil 'require-match)))
|
||||
(pp-display-expression
|
||||
(org-element-parse-buffer what) grok-org-output)))
|
||||
|
||||
(defun grok-org-heading-components ()
|
||||
(interactive)
|
||||
(pp-display-expression
|
||||
(org-heading-components) grok-org-output))))
|
||||
#+end_src
|
||||
|
||||
* Programming
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:programming
|
||||
@ -2000,18 +2052,18 @@ instance [[https://numpy.org/][numpy]] and [[https://scipy.org/][scipy]].
|
||||
*** TODO Look into: editing facilities
|
||||
1. [[https://github.com/douglasdavis/numpydoc.el/blob/main/numpydoc.el][Emacs extension to insert numpy style docstrings in function definitions]]
|
||||
|
||||
* Editing
|
||||
* [[info:emacs#Key Bindings][Key Bindings (info)]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:editing
|
||||
:CUSTOM_ID: sec:key-bindings
|
||||
:END:
|
||||
|
||||
** [[https://www.emacswiki.org/emacs/DisabledCommands][Enable disabled commands and inform]]
|
||||
** [[info:emacs#Disabling][Disabling Commands (info)]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:enable-disabled-commands
|
||||
:END:
|
||||
|
||||
Execute src_emacs-lisp{(find-library "novice")} to see how Emacs prevents new
|
||||
users from shooting themselves in the feet.
|
||||
users from shooting themselves in the feet. Listing
|
||||
[[lst:configure-disabled-command-function]] enables [[https://www.emacswiki.org/emacs/DisabledCommands][disabled commands on the fly]].
|
||||
|
||||
#+caption[Configure the =disabled-command-function=]:
|
||||
#+caption: Configure the =disabled-command-function=.
|
||||
@ -2028,58 +2080,11 @@ users from shooting themselves in the feet.
|
||||
(call-interactively this-command)))
|
||||
#+end_src
|
||||
|
||||
** [[info:emacs#Narrowing][Narrowing]]
|
||||
* [[info:emacs#Minor Modes][Minor Modes (info)]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:narrowing
|
||||
:CUSTOM_ID: sec:minor-modes
|
||||
:END:
|
||||
|
||||
Narrowing means focusing in on some portion of the buffer and widening means
|
||||
focussing out on the whole buffer. This allows to concentrate temporarily on
|
||||
for instance a particular function or paragraph by removing clutter. The "Do
|
||||
What I Mean" [[https://endlessparentheses.com/emacs-narrow-or-widen-dwim.html][narrow-or-widen-dwim]] function allows to toggle between narrowed and
|
||||
widened buffer states. Here, the function =narrow-or-widen-dwim= operates also
|
||||
on tables by means of =org-narrow-to-table=.
|
||||
|
||||
#+caption[Configure =narrow-or-widen-dwim=]:
|
||||
#+caption: Configure =narrow-or-widen-dwim=.
|
||||
#+name: lst:configure-narrow-or-widen-dwim
|
||||
#+begin_src emacs-lisp
|
||||
(defun org-narrow-to-table ()
|
||||
"Narrow buffer to current table."
|
||||
(interactive)
|
||||
(if (org-table-p)
|
||||
(narrow-to-region (org-table-begin) (org-table-end))
|
||||
(user-error "Not in a table")))
|
||||
|
||||
(defun narrow-or-widen-dwim (p)
|
||||
"Widen if buffer is narrowed, narrow-dwim otherwise.
|
||||
Dwim means: region, org-src-block, org-subtree, or defun,
|
||||
whichever applies first. Narrowing to org-src-block actually
|
||||
calls `org-edit-src-code'.
|
||||
With prefix P, don't widen, just narrow even if buffer is
|
||||
already narrowed."
|
||||
(interactive "P")
|
||||
(declare (interactive-only))
|
||||
(cond ((and (buffer-narrowed-p) (not p)) (widen))
|
||||
((and (bound-and-true-p org-src-mode) (not p))
|
||||
(org-edit-src-exit))
|
||||
((region-active-p)
|
||||
(narrow-to-region (region-beginning) (region-end)))
|
||||
((derived-mode-p 'org-mode)
|
||||
(or (ignore-errors (org-edit-src-code))
|
||||
(ignore-errors (org-narrow-to-block))
|
||||
(ignore-errors (org-narrow-to-table))
|
||||
(org-narrow-to-subtree)))
|
||||
((derived-mode-p 'latex-mode)
|
||||
(LaTeX-narrow-to-environment))
|
||||
((derived-mode-p 'tex-mode)
|
||||
(TeX-narrow-to-group))
|
||||
(t (narrow-to-defun))))
|
||||
|
||||
(define-key ctl-x-map (kbd "n t") #'org-narrow-to-table)
|
||||
(define-key ctl-x-map (kbd "C-n") #'narrow-or-widen-dwim)
|
||||
#+end_src
|
||||
|
||||
** [[https://github.com/victorhge/iedit#readme][Synchronal multiple-region editing]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:synchronal-multiple-region-editing
|
||||
@ -2221,14 +2226,65 @@ code formatter for Python]].
|
||||
(yas-global-mode +1))
|
||||
#+end_src
|
||||
|
||||
* [[https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00775.html][Appearance]]
|
||||
* [[info:emacs#Display][Display (info)]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:appearance
|
||||
:CUSTOM_ID: sec:display
|
||||
:END:
|
||||
|
||||
This setup does not configure [[info:emacs#Custom Themes][custom themes (info)]] in order to prevent endless
|
||||
useless tweaking.
|
||||
|
||||
** [[info:emacs#Narrowing][Narrowing]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:narrowing
|
||||
:END:
|
||||
|
||||
Narrowing means focusing in on some portion of the buffer and widening means
|
||||
focussing out on the whole buffer. This allows to concentrate temporarily on
|
||||
for instance a particular function or paragraph by removing clutter. The "Do
|
||||
What I Mean" [[https://endlessparentheses.com/emacs-narrow-or-widen-dwim.html][narrow-or-widen-dwim]] function allows to toggle between narrowed and
|
||||
widened buffer states. Here, the function =narrow-or-widen-dwim= operates also
|
||||
on tables by means of =org-narrow-to-table=.
|
||||
|
||||
#+caption[Configure =narrow-or-widen-dwim=]:
|
||||
#+caption: Configure =narrow-or-widen-dwim=.
|
||||
#+name: lst:configure-narrow-or-widen-dwim
|
||||
#+begin_src emacs-lisp
|
||||
(defun org-narrow-to-table ()
|
||||
"Narrow buffer to current table."
|
||||
(interactive)
|
||||
(if (org-table-p)
|
||||
(narrow-to-region (org-table-begin) (org-table-end))
|
||||
(user-error "Not in a table")))
|
||||
|
||||
(defun narrow-or-widen-dwim (p)
|
||||
"Widen if buffer is narrowed, narrow-dwim otherwise.
|
||||
Dwim means: region, org-src-block, org-subtree, or defun,
|
||||
whichever applies first. Narrowing to org-src-block actually
|
||||
calls `org-edit-src-code'.
|
||||
With prefix P, don't widen, just narrow even if buffer is
|
||||
already narrowed."
|
||||
(interactive "P")
|
||||
(declare (interactive-only))
|
||||
(cond ((and (buffer-narrowed-p) (not p)) (widen))
|
||||
((and (bound-and-true-p org-src-mode) (not p))
|
||||
(org-edit-src-exit))
|
||||
((region-active-p)
|
||||
(narrow-to-region (region-beginning) (region-end)))
|
||||
((derived-mode-p 'org-mode)
|
||||
(or (ignore-errors (org-edit-src-code))
|
||||
(ignore-errors (org-narrow-to-block))
|
||||
(ignore-errors (org-narrow-to-table))
|
||||
(org-narrow-to-subtree)))
|
||||
((derived-mode-p 'latex-mode)
|
||||
(LaTeX-narrow-to-environment))
|
||||
((derived-mode-p 'tex-mode)
|
||||
(TeX-narrow-to-group))
|
||||
(t (narrow-to-defun))))
|
||||
|
||||
(define-key ctl-x-map (kbd "n t") #'org-narrow-to-table)
|
||||
(define-key ctl-x-map (kbd "C-n") #'narrow-or-widen-dwim)
|
||||
#+end_src
|
||||
** [[info:emacs#Faces][Text faces (or styles)]]
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: sec:text-faces-or-styles
|
||||
|
Loading…
Reference in New Issue
Block a user