[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: org-babel-execute-src-block filters characters from :session *shell*
From: |
Cook, Malcolm |
Subject: |
RE: org-babel-execute-src-block filters characters from :session *shell* output |
Date: |
Mon, 17 Jun 2024 22:40:18 +0000 |
>>>TL;DR: It is complicated. When we pull one string out, several more
>>>get entangled.
>>
>> Might there be a solution wherein both the interactive shell buffer and Org
>> are talking to a common underlying process? I would expect such to be
>> significantly more complicated, but perhaps better factored? Not that I'm
>> offering or capable of such a re-write 😉
>
>comint buffer is doing exactly this - it is sending input (user
>comments) to the underlying shell process and receiving the output from
>that process, putting it back into the comit buffer.
>
>Unfortunately, there is no simple way to distinguish real output, shell
>echoing the submitted command, and shell prompt - shells do not provide
>any such information. The best they can provide is splitting between
>stdout and stderr. Alas.
>
>>>As a practical workaround, just do not use *shell* session names and
>>>session names that are the same as shell buffers you create manually.
>>
>> Is there perhaps another practical workaround you might suggest to me
>> involving a more intentional setting of the prompt and/or informing Org of
>> my choice of prompt (e.g. perhaps via setting a regexp to detect exactly my
>> prompt, and only when it is anchored to beginning of line)?
>
>That's also an option.
>What you need to fiddle with is `comint-prompt-regexp'.
This!
Since my (bash) shell prompt is a (more or less) constant string (e.g.
"myname@myhost> ").
So, my workaround is to:
(setq comint-prompt-regexp "myname@myhost> ")
Then the filtering works perfectly.
Of course if I change my name, this will fail. Or, more likely, connect to a
different host within the shell.
Or if I change PS1 😉
It would be useful to automate this a little.
The variable needs to be set buffer-local to the shell buffer.
And it could possibly somehow ask the process for the value of PS1.
Any more TIPS on doing this?
Or perhaps advice that I shouldn't want to ...??? 😉
Cheers,
~ Malcolm
- org-babel-execute-src-block filters characters from :session *shell* output, Cook, Malcolm, 2024/06/13
- Re: org-babel-execute-src-block filters characters from :session *shell* output, Ihor Radchenko, 2024/06/14
- RE: org-babel-execute-src-block filters characters from :session *shell* output, Cook, Malcolm, 2024/06/17
- RE: org-babel-execute-src-block filters characters from :session *shell* output, Ihor Radchenko, 2024/06/17
- RE: org-babel-execute-src-block filters characters from :session *shell* output,
Cook, Malcolm <=
- RE: org-babel-execute-src-block filters characters from :session *shell* output, Cook, Malcolm, 2024/06/17
- RE: org-babel-execute-src-block filters characters from :session *shell* output, Ihor Radchenko, 2024/06/19
- RE: org-babel-execute-src-block filters characters from :session *shell* output, Ihor Radchenko, 2024/06/30