****** DONE GLT21: Emacs Org mode Features You May Not Know :blog:emacs:open:software:events:graz: CLOSED: [2021-04-10 Sat 17:00] :PROPERTIES: :ID: 2021-03-14-GLT21-emacs-org-features :CREATED: [2021-04-10 Sat 17:00] :END: :LOGBOOK: - State "DONE" from "DONE" [2021-04-16 Fri 23:33] - State "DONE" from "STARTED" [2021-04-10 Sat 17:00] :END: Update 2021-04-16: Video link After the COVID19-related cancellation of our local open source community conference in 2020, the organizers of the "[[https://www.linuxtage.at][Grazer Linuxtage]]" moved to [[https://www.linuxtage.at/en/digital-concept/][an online concept for this year's event]]. I submitted a talk which was inspired by Bastien's article [[https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know.html/][Org-mode features You May Not Know]]. My talk also covers a few general Emacs features which are also very handy when using [[https://orgmode.org][Org mode]]. I consider this a fair argument so that the title is not misleading at all. ;-) You can find [[https://pretalx.linuxtage.at/glt21/talk/ZKEXNW/][the conference-page about the talk here]]. You can find [[https://media.ccc.de/v/glt21-251-emacs-org-mode-features-you-may-not-know][the video of the talk here]]. This article covers the content of the talk, further links and notes. ******* Content of the Talk This is a sub-set of [[https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know.html/][bzg's page]], extended by ideas of other pages. See "References" below. ******** Standard Emacs Features - ~C-l~ recenter-top-bottom - scroll-lock-mode - ~ScrLk~ or ~M-x scroll-lock-mode~ #+BEGIN_SRC emacs-lisp (global-set-key (kbd "") 'scroll-lock-mode) #+END_SRC - ~M-q~ fill-paragraph - modification: [[https://github.com/novoid/dot-emacs/blob/master/config.org][my-fill-or-unfill]] - changing case: - ~M-l~ downcase-word (downcase-dwim) - ~M-u~ upcase-word (upcase-dwim) - ~M-c~ capitalize-word (capitalize-dwim) - ~C-x TAB~ indent-rigidly - rectangle functions - ~C-x r t~ string-rectangle → inserting characters - ~C-x r k~ kill-rectangle → removing characters - ~C-x r y~ yank-rectangle - ~M-x insert-char~ → inserting (UTF-8) characters - view-mode - ~SPC~ next page - ~S-SPC~ or ~DEL~ previous page - ~d~ next half page - ~u~ previous half page - ~s~ search - cycle spacing - ~M-SPC~ delete all whitespace around cursor but one - undo in region - artist mode ******** Standard Org mode Features - lists - ~M-S-RET~ new checkbox item - ~C-u C-c C-c~ on a list item to make it a checklist - ~C-c *~ list item (with checkbox) → heading (with TODO) - reverse: ~C-c -~ - agenda - ~/~ filter by category, tag, regular expression, ... - ~<~ filter to current category - ~=~ filter by regex - ~|~ reset filter - ~.~ → today - date/time - ~C-c .~ org-time-stamp - duration - entering a time-stamp twice - entering times: - ~+1d 10+1~ → tomorrow 10:00-11:00 - ~wed 3:30pm+0:30~ → next Wednesday 3:30pm to 4pm - changing time-stamps - ~S-~ → shift days - ~S-~ → shift year/month/day/hour/minutes - timer - ~C-c C-x 0~ → start timer - ~C-c C-x .~ → insert timestamp - ~C-c C-x ,~ → pause timer - ~C-c C-x _~ → stop timer - tables - ~S-RET~ → copy and increment the cell at point (numbers, dates) - marking - ~M-h~ → mark (and highlight) the paragraph - several times → mark next elements as well - moving things - ~M-~ → moving things: - list items, - headings, - table rows/columns, ... - navigation - ~C-u C-u C-c c~ → jump to the last stored capture entry - org-num-mode → adds (non-persistent) numbers to headings - crypt - Tag ~:crypt:~ → OpenPGP/gpg-encrypted content on saving the buffer - searching and focus - ~C-c / /~ → sparse trees of regex - ~org-tree-to-indirect-buffer~ - ~my-org-tree-to-indirect-buffer~ adapted from alphapapa on [[https://www.reddit.com/r/orgmode/comments/dbsngi/finally_solving_the_lack_of_a_treeview_navigation/f26qpzr/][reddit]] ******** With Customization - Demo: Highlight current line on misc operations: #+BEGIN_SRC emacs-lisp (defun my-pulse-line (&rest _) "Pulse the current line." (pulse-momentary-highlight-one-line (point))) (dolist (command '(recenter-top-bottom other-window ace-window my-scroll-down-half my-scroll-up-half)) (advice-add command :after #'my-pulse-line)) #+END_SRC - Demo: Hydras for personal [[https://en.wikipedia.org/wiki/Cheatsheet][cheat-sheets]] - [[id:2018-07-07-emacs-key-bindings][my key binding strategy + use of Hydras]] - Demo: Buffer management with [[https://depp.brause.cc/eyebrowse/][eyebrowse]] - Demo: [[https://github.com/novoid/dot-emacs/blob/master/config.org][my-org-region-to-property]] ******* References - [[https://orgmode.org/][Org mode webpage]] → [[https://orgmode.org/manual/index.html][Org manual]] - [[https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know.html/][Org-mode features You May Not Know - bzg]] - [[https://tech.toryanderson.com/2021/02/27/best-features-for-text-editing-in-emacs/][Best features for text-editing in emacs | Tech.ToryAnderson.com]] - [[https://karthinks.com/software/batteries-included-with-emacs/][Batteries included with Emacs | Karthinks]] - [[https://github.com/novoid/dot-emacs/blob/master/config.org][My Emacs configuration file]] → contains all mentioned functions that begin with the prefix ~my-~ If you want to read more from my content on Org mode, please do also check out [[id:tags-emacs][my general emacs/Org articles]] or my series on [[id:2019-09-25-using-orgmode][Using Org Mode Features]]. ******* Colophon Things that I used to create the recording: - Debian GNU/Linux Buster - GNU/Emacs 28.0.50 - Xubuntu GNU/Linux 20.04.2 LTS - GNU/Emacs 26.3 - Org mode 9.4 - [[https://github.com/novoid/dot-emacs/blob/master/config.org][My personal Emacs configuration file]] - Displaying commands: [[https://github.com/tarsius/keycast][keycast]] - Screen recording: OBS Studio 23.2.1 - Video postprocessing: Pitivi 0.999-2 - Recording hardware - Microphone: Blue Snowball - Keyboard: [[id:2021-01-30-keyboards][Z-88]]