Make invisible parts of Org elements appear visible.
Org mode provides a way to toggle visibility of hidden elements such as emphasis markers, links, etc. by customising specific variables, e.g., org-hide-emphasis-markers
. However, it is currently not possible to do this interactively and on an element-by-element basis. This package, inspired by org-fragtog, enables automatic visibility toggling depending on cursor position. Hidden element parts appear when the cursor enters an element and disappear when it leaves.
The easiest way to install org-appear
is from MELPA, using your favourite package manager or package-install
. For Guix users, org-appear
is also available in the official GNU Guix channel.
With straight.el, simply put the following line in init.el
:
(straight-use-package '(org-appear :type git :host github :repo "awth13/org-appear"))
Alternatively, git clone this repository and point Emacs to it using the :load-path
keyword of use-package
or require
.
The package can be enabled interactively or automatically on org-mode start-up:
(add-hook 'org-mode-hook 'org-appear-mode)
By default, toggling is instantaneous and only emphasis markers are toggled. The following custom variables can be changed to enable additional functionality.
- org-appear-autolinks
- if non-nil, toggle links
- org-appear-autosubmarkers
- if non-nil, toggle subscripts and superscripts
- org-appear-autoentities
- if non-nil, toggle Org entitites
- org-appear-autokeywords
- if non-nil, toggle keywords in
org-hidden-keywords
- org-appear-delay
- seconds of delay before toggling
If Org mode custom variables that control visibility of elements are configured to show hidden parts, the respective org-appear
settings do not have an effect.
Special thanks to SPFabGerman, who came up with the idea and extended org-appear
beyond emphasis marker toggling, and daviwil, who proposed the org-appear
name.
org-appear
does not handle overlapping emphasis elements correctly, e.g.,
*Why would someone /nest emphasis* like that?/
In the above example, org-appear
can only detect and reveal the first (bold) element. This is due to the reliance on the org-element
API – org-element-context
in particular – which also fails to detect the second (italic) element.
org-appear
will fail to detect elements nested inside certain other elements, such as comments or document titles.