* Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
@ 2017-04-16 8:43 Michael Albinus
2017-04-16 10:58 ` Tilmann Singer
0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2017-04-16 8:43 UTC (permalink / raw)
To: emacs-orgmode
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
)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
2017-04-16 8:43 Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)] Michael Albinus
@ 2017-04-16 10:58 ` Tilmann Singer
2017-04-16 17:19 ` Charles C. Berry
0 siblings, 1 reply; 6+ messages in thread
From: Tilmann Singer @ 2017-04-16 10:58 UTC (permalink / raw)
To: Michael Albinus, emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 710 bytes --]
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/)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
2017-04-16 10:58 ` Tilmann Singer
@ 2017-04-16 17:19 ` Charles C. Berry
2017-04-16 21:46 ` Michael Albinus
0 siblings, 1 reply; 6+ messages in thread
From: Charles C. Berry @ 2017-04-16 17:19 UTC (permalink / raw)
To: Tilmann Singer; +Cc: emacs-orgmode, Michael Albinus
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
2017-04-16 17:19 ` Charles C. Berry
@ 2017-04-16 21:46 ` Michael Albinus
2017-04-16 23:14 ` Charles C. Berry
0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2017-04-16 21:46 UTC (permalink / raw)
To: Charles C. Berry; +Cc: emacs-orgmode, Tilmann Singer
"Charles C. Berry" <ccberry@ucsd.edu> 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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
2017-04-16 21:46 ` Michael Albinus
@ 2017-04-16 23:14 ` Charles C. Berry
2017-04-17 7:53 ` Michael Albinus
0 siblings, 1 reply; 6+ messages in thread
From: Charles C. Berry @ 2017-04-16 23:14 UTC (permalink / raw)
To: Michael Albinus; +Cc: emacs-orgmode, Tilmann Singer
On Sun, 16 Apr 2017, Michael Albinus wrote:
> "Charles C. Berry" <ccberry@ucsd.edu> 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)]
2017-04-16 23:14 ` Charles C. Berry
@ 2017-04-17 7:53 ` Michael Albinus
0 siblings, 0 replies; 6+ messages in thread
From: Michael Albinus @ 2017-04-17 7:53 UTC (permalink / raw)
To: Charles C. Berry; +Cc: emacs-orgmode, Tilmann Singer
"Charles C. Berry" <ccberry@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.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-04-17 7:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-16 8:43 Bug: :session doesn't honor :verbatim [8.2.10 (release_8.2.10 @ /usr/local/share/emacs/26.0.50/lisp/org/)] Michael Albinus
2017-04-16 10:58 ` Tilmann Singer
2017-04-16 17:19 ` Charles C. Berry
2017-04-16 21:46 ` Michael Albinus
2017-04-16 23:14 ` Charles C. Berry
2017-04-17 7:53 ` Michael Albinus
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).