[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [RFC] removing all results WAS: Re: idempotency ... org-babel-re
From: |
Daniele Pizzolli |
Subject: |
Re: [O] [RFC] removing all results WAS: Re: idempotency ... org-babel-remove-inline-result |
Date: |
Wed, 04 Feb 2015 09:59:06 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
Hello Charles,
"Charles C. Berry" writes:
> Further Daniele's response to '[bug] Removing the Babel results':
>
> http://article.gmane.org/gmane.emacs.orgmode/94604
>
> See below.
>
>> But why a `native' function? You know how to achieve this result and
>> can
>>
>> 1. add a customized function to your init file,
>> 2. submit a snippet to Worg, and/or
>> 3. contribute an *add on*, and/or
>> 4. argue for changes/additions to the Org code base, what you call a
>> `native' function.
>>
>> Option 4 generates work for those who maintain Org code, so it needs
>> to be justified in terms of usefulness to other users and
>> issues in the code that it might fix or complicate.
>>
>> Even if 4 is the right path, a decision is needed on whether to add
>> new functions, or change the behavior of existing functions (possibly
>> adding a new variable or customization). The latter might be cleaner,
>> but runs the risk of breaking someone's code.
>
> The latter notion is along these lines:
Thanks for your reasoning and conclusion.
>
> #+BEGIN_SRC emacs-lisp
> (defun org-babel-remove-result-one-or-many (x &optional keep-keyword)
> "Remove the result of the current source block.
> If called with a prefix argument, remove all result blocks and
> results macros in the buffer. When KEEP-KEYWORD is non-nil, allow
> RESULTS keywords to remain."
> (interactive (list current-prefix-arg
> (y-or-n-p "Keep RESULTS keyword(y/n):")))
(y/n) seems to be redundant: y-or-n-p prints the options by itself.
> (if x
> (org-babel-map-executables nil
> (org-babel-remove-result nil keep-keyword)
> (org-babel-remove-inline-result))
> (org-babel-remove-result nil keep-keyword)
> (org-babel-remove-inline-result)))
> #+END_SRC
>
> which seems to handle Sebastien's `bug' if the user responds with 'y' (or
> a calling function has a non-nil `keep-keyword'.
Seems reasonable to me. But I still think that one-or-many does not
have a lot of sense since there is the one-case function already.
Is it possible to call it by something like C-u C-u M-x
org-babel-remove-result-one-or-many or by a custom keystroke and avoid
the interactive prompt and have it to clean all the result keeping the
keyword (without writing a function or using lambda)?
As a novice I like interactive prompt because you can be lead through
the choices, but I do not want to be annoyed by them when I become
expert and have the answer ready and it is almost always the same one.
If not, no worries, I think I will wrap in a custom one.
Thanks again,
Daniele