"Charles C. Berry" <ccbe...@ucsd.edu> writes: >> 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.
Thanks for the examples. Anything goes, of course, but I'm hoping for a tighter integration. Maybe a :prompt param to sh source blocks, which sets the prompt in a session, and which also manipulates `comint-prompt-regexp' or `shell-prompt-pattern' local in the session buffer. Or a mechanism like in Tramp, where the shell prompt is set to a random string not expected in the shell (see `tramp-end-of-output'), and `comint-prompt-regexp' or `shell-prompt-pattern' are adapted automatically local in the session buffer. > Chuck Best regards, Michael.