|
| From: | Charles C. Berry |
| Subject: | Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)] |
| Date: | Sun, 16 Apr 2017 16:14:03 -0700 |
| User-agent: | Alpine 2.20 (OSX 67 2015-01-07) |
On Sun, 16 Apr 2017, Michael Albinus wrote:
"Charles C. Berry" <address@hidden> writes:Michael might get some relief by altering `shell-prompt-pattern' whose default value is "^[^#$%>\n]*[#$%>] *" is tricked by the embedded `%' in the output lines If you know the prompt will not contain `%', you could delete that. Changing the asterisk to a plus might work (untested) or maybe adding a blank in the first (negated) char class (also untested). Or if you know what the prompt will be literally, use that: "^My-prompt-[$] *"I've eval'ed (setq shell-prompt-pattern "^[^#$>\n]*[#$>] *") , this helps. Thanks for the tip. However, I don't want to change this globally. Is there an org mean to change this locally just for the session? Maybe the shell prompt could be customizable for a session in ob-sh.el?
That happens in the shell. You can do this to start your session:
#+BEGIN_SRC shell :session mysess
PS1="MyPrompt-$ "
#+END_SRC
#+RESULTS:
and then tell emacs to locally set `comint-prompt-regexp' to a value
other than what was copied from `shell-prompt-pattern'
#+BEGIN_SRC emacs-lisp
(save-excursion
(pop-to-buffer "mysess")
(setq-local comint-prompt-regexp "MyPrompt-$ "))
#+END_SRC
#+RESULTS:
: MyPrompt-$
and then it should work.
#+BEGIN_SRC shell :session mysess
echo "a%b"
#+END_SRC
#+RESULTS:
: a%b
---
You might skip the second step and instead set `shell-prompt-pattern'
to "MyPrompt-$ ". If `comint-use-prompt-regexp' is nil, then the
`comint-prompt-regexp' is only consulted by ob-shell.el funs per the
docstring of comint-use-prompt-regexp.
Chuck
| [Prev in Thread] | Current Thread | [Next in Thread] |