---- On Mon, 10 Jun 2024 04:48:10 +0200 Suhail Singh wrote --- > Currently (Org 9.7.3), org-babel-switch-to-session invokes > org-babel-initiate-session which tries to invoke > org-babel--initiate-session. On a related note, ob-shell defines > org-babel-sh-initiate-session (and uses it within > org-babel-execute:shell). > > However, there are no definitions for org-babel-shell-initiate-session > nor org-babel-bash-initiate-session etc. This means that trying to use > org-metadown (which invokes org-babel-switch-to-session) on shell and > bash language session blocks results in the following errors > respectively: > > #+begin_comment > org-babel-initiate-session: No org-babel-initiate-session function for > shell! > org-babel-initiate-session: No org-babel-initiate-session function for > bash! > #+end_comment > > Is this a bug? If so, does org-babel-shell-initialize need to be > patched to set up function aliases pointing to > org-babel-sh-initiate-session ? > > FWIW, I have been using such aliases in my personal config for bash and > shell language blocks and they seem to behave as expected.
Thank you for your message! Yes, I would consider this a bug. I agree, defining an alias within "org-babel-shell-initialize" seems reasonable. However, it's important that "explicit-shell-file-name" is set to the appropriate shell name. In your case, I suspect it's a coincidence that aliasing "org-babel-sh-initiate-session" works. A "shell" block defaults to "explicit-shell-file-name". This, I suspect, is "bash" in your case, yet may be something different on another system. The alias would need to close over "explicit-shell-file-name" like is done with "org-babel-execute:name". -- Matt Trzcinski Emacs Org contributor (ob-shell) Learn more about Org mode at https://orgmode.org Support Org development at https://liberapay.com/org-mode