Bidirectional links with eev

Eduardo Ochs

The following image shows where the talk is in the schedule for Sat 2022-12-03. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.

Schedule for Saturday Saturday 9:00- 9:05 Saturday opening remarks sat-open 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs) journalism 9:45- 9:55 Back to school with Emacs school 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode handwritten 10:45-11:05 Writing and organizing literature notes for scientific writing science 11:25-11:35 The Emacs Buddy initiative buddy 1:00- 1:20 Attending and organizing Emacs meetups meetups 1:40- 1:55 Linking personal info with Hyperbole implicit buttons buttons 2:15- 2:40 Real estate and Org table formulas realestate 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot health 3:45- 4:05 Edit live Jupyter notebook cells with Emacs jupyter 4:50- 4:55 Saturday closing remarks sat-close 10:00-10:15 Tree-sitter beyond syntax highlighting treesitter 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client lspbridge 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for asmblox 11:25-11:35 Emacs should become a Wayland compositor wayland 1:00- 1:25 Using SQLite as a data source: a framework and an example sqlite 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents mail 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint 3:35- 3:40 Bidirectional links with eev eev 3:50- 3:55 Short hyperlinks to Python docs python 4:05- 4:35 Haskell code exploration with Emacs haskell 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM

Format: 5-min talk followed by IRC Q&A (#emacsconf-dev)
Discuss on IRC: #emacsconf-dev
Status: Waiting for video from speaker

Times in different timezones:
Saturday, Dec 3 2022, ~3:35 PM - 3:40 PM EST (US/Eastern)
which is the same as:
Saturday, Dec 3 2022, ~2:35 PM - 2:40 PM CST (US/Central)
Saturday, Dec 3 2022, ~1:35 PM - 1:40 PM MST (US/Mountain)
Saturday, Dec 3 2022, ~12:35 PM - 12:40 PM PST (US/Pacific)
Saturday, Dec 3 2022, ~8:35 PM - 8:40 PM UTC
Saturday, Dec 3 2022, ~9:35 PM - 9:40 PM CET (Europe/Paris)
Saturday, Dec 3 2022, ~10:35 PM - 10:40 PM EET (Europe/Athens)
Sunday, Dec 4 2022, ~2:05 AM - 2:10 AM IST (Asia/Kolkata)
Sunday, Dec 4 2022, ~4:35 AM - 4:40 AM +08 (Asia/Singapore)
Sunday, Dec 4 2022, ~5:35 AM - 5:40 AM JST (Asia/Tokyo)
Find out how to watch and participate


Consider the two sexps below:

(code-c-d "foobar" "/tmp/foo/bar/" :anchor)
(code-c-d "fb"     "/tmp/foo/bar/" :anchor)

Each one of them defines several "short hyperlink" functions. After running them the three sexps below are roughly equivalent:

(find-file "/tmp/foo/bar/plic.txt")
(find-foobarfile "plic.txt")
(find-fbfile "plic.txt")

The "code-c-d"s above also define functions with even shorter names – find-foobar and find-fb - that point to "anchors" in files in the directory /tmp/foo/bar/. The three sexps below are roughly equivalent -

(find-fline "/tmp/foo/bar/plic.txt" "«bletch»")
(find-foobar "plic.txt" "bletch")
(find-fb "plic.txt" "bletch")

Until feb/2022 the only way that I had to produce these hyperlinks to anchors quickly required a LOT of muscle memory… I had to type this,

M-1 M-h M-w  M-h M-h  9*<down>  M-h M-2  M-h M-y  M-h M--  M-h M-w  M-k

where the number of "<down>"s depended on whether I preferred find-foobar of find-fb - i.e., of on what is my preferred "code" for the "directory" /tmp/foo/bar/; either "foobar" or "fb".

In this presentation I will show a much better way to generate short hyperlinks to anchors and push these short hyperlinks to the kill ring, and how I use that to create bidirectional hyperlinks between my notes on a language $LANGUAGE and programs written in that language.

For more info see this page.

Questions or comments? Please e-mail