Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
"Charles C. Berry"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.
Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
On Sun, 16 Apr 2017, Michael Albinus wrote: "Charles C. Berry"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
Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
"Charles C. Berry"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? > HTH, > > Chuck Best regards, Michael.
Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
On Sun, 16 Apr 2017, Tilmann Singer wrote: Let me add that when not specifying ":results verbatim", the presence of the % sign in the output also triggers table formatting: #+BEGIN_SRC sh :session *session* echo "a%b" #+END_SRC #+RESULTS: | | | b | The extra line looks like a bug in babel. The session will show: echo "a%b" bash-3.2$ a%b as the first two lines in the buffer. -- 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-[$] *" [snip] HTH, Chuck
Re: [O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
Let me add that when not specifying ":results verbatim", the presence of the % sign in the output also triggers table formatting: #+BEGIN_SRC sh :session *session* echo "a%b" #+END_SRC #+RESULTS: | | | b | Whereas without session, the output is formatted like this #+BEGIN_SRC sh echo "a%b" #+END_SRC #+RESULTS: : a%b And if the session has not been opened already, then the first time evaluation does not cut off the results: #+BEGIN_SRC sh :session *session2* echo "a%b" #+END_SRC #+RESULTS: | | | a%b | greetings, Til Emacs : GNU Emacs 25.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7) of 2017-02-07 Package : Org mode version 9.0 (9.0-elpa @ /home/tils/.emacs.d/elpa/org-20161102/) signature.asc Description: PGP signature
[O] Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
Hi, when I eval the following source block, everything is fine: #+BEGIN_SRC sh :results verbatim df -h / #+END_SRC #+RESULTS: : Filesystem Size Used Avail Use% Mounted on : /dev/sda6 137G 55G 76G 43% / However, using a :session shortens the output unexpectedly: #+BEGIN_SRC sh :results verbatim :session *session* df -h / #+END_SRC #+RESULTS: : : Mounted on : / I suppose it is due to the "%" character in the output, because the following works fine: #+BEGIN_SRC sh :results verbatim :session *session* df --output=source,size,used,avail,target -h / #+END_SRC #+RESULTS: : Filesystem Size Used Avail Mounted on : /dev/sda6 137G 55G 76G / Emacs : GNU Emacs 26.0.50 (build 44, x86_64-pc-linux-gnu, GTK+ Version 2.24.30) of 2017-03-31 Package: Org-mode version 8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/) current state: == (setq org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-after-todo-state-change-hook '(org-clock-out-if-current) org-metadown-hook '(org-babel-pop-to-session-maybe) org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-confirm-elisp-link-function 'yes-or-no-p org-agenda-before-write-hook '(org-agenda-add-entry-text) org-metaup-hook '(org-babel-load-in-session-maybe) org-babel-pre-tangle-hook '(save-buffer) org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-occur-hook '(org-first-headline-recenter) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-hide-inline-tasks org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook) org-confirm-shell-link-function 'yes-or-no-p )