emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* execute elisp link without prompt
@ 2021-05-21 16:11 Colin Baxter
  2021-05-21 16:28 ` Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Colin Baxter @ 2021-05-21 16:11 UTC (permalink / raw)
  To: emacs-orgmode

Hello,

I have an elisp link of the form (without spaces, of course)
[ [elisp:(dired-other-window "/path/to/directory/") ][ Directory ] ].

The link works with the directory in appearing in dired window. However,
when I first click on the link, a dialog box is brought up asking me if
a I wish to execute the command. Of course, I do - and I click 'Yes'.

How can I go to link directly without being interrogated by the dialog
box?

Best wishes,

Colin Baxter.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: execute elisp link without prompt
  2021-05-21 16:11 execute elisp link without prompt Colin Baxter
@ 2021-05-21 16:28 ` Nicolas Goaziou
  2021-05-21 19:17   ` Colin Baxter
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2021-05-21 16:28 UTC (permalink / raw)
  To: Colin Baxter; +Cc: emacs-orgmode

Hello,

Colin Baxter <m43cap@yandex.com> writes:

> I have an elisp link of the form (without spaces, of course)
> [ [elisp:(dired-other-window "/path/to/directory/") ][ Directory ] ].
>
> The link works with the directory in appearing in dired window. However,
> when I first click on the link, a dialog box is brought up asking me if
> a I wish to execute the command. Of course, I do - and I click 'Yes'.
>
> How can I go to link directly without being interrogated by the dialog
> box?

See org-link-elisp-confirm-function.

Regards,
-- 
Nicolas Goaziou


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: execute elisp link without prompt
  2021-05-21 16:28 ` Nicolas Goaziou
@ 2021-05-21 19:17   ` Colin Baxter
  2021-05-21 22:01     ` Tom Gillespie
  0 siblings, 1 reply; 5+ messages in thread
From: Colin Baxter @ 2021-05-21 19:17 UTC (permalink / raw)
  To: emacs-orgmode

Dear Nicolas,

>>>>> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

    > Hello, Colin Baxter <m43cap@yandex.com> writes:

    >> I have an elisp link of the form (without spaces, of course) [
    >> [elisp:(dired-other-window "/path/to/directory/") ][ Directory ]
    >> ].
    >> 
    >> The link works with the directory in appearing in dired
    >> window. However, when I first click on the link, a dialog box is
    >> brought up asking me if a I wish to execute the command. Of
    >> course, I do - and I click 'Yes'.
    >> 
    >> How can I go to link directly without being interrogated by the
    >> dialog box?

    > See org-link-elisp-confirm-function.

Thank you. I tried setting 'org-link-elisp-confirm-function' to y-or-n-p
as suggested by ol.el, but it gave me a dialog box, as before, which I
had to click. In the end I've set as to nil as a local variable:

#+begin_src elisp
eval: (set (make-local-variable 'org-link-elisp-confirm-function) nil)
#+end_src

The doc-string says it's risky when used as a local variable, but it
seems to work. The variable returns to the global default 'yes-or-no-p'
when the buffer is killed.

Best wishes,


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: execute elisp link without prompt
  2021-05-21 19:17   ` Colin Baxter
@ 2021-05-21 22:01     ` Tom Gillespie
  2021-05-22  6:02       ` Colin Baxter
  0 siblings, 1 reply; 5+ messages in thread
From: Tom Gillespie @ 2021-05-21 22:01 UTC (permalink / raw)
  To: Colin Baxter; +Cc: emacs-orgmode

> In the end I've set as to nil as a local variable

If you want something a bit more secure you could use a function that
checks the block name ("some-block" in this example). Best!
Tom

(lambda (_lang _body)
   (not
    (string= "some-block"
             (plist-get (cadr (org-element-at-point)) :name))))

#+begin_src elisp
(setq-local
 org-confirm-babel-evaluate
 (lambda (_lang _body)
   (not
    (string= "some-block"
             (plist-get (cadr (org-element-at-point)) :name)))))
#+end_src

#+name: some-block
#+begin_src elisp
(message "yay!")
#+end_src

#+RESULTS: some-block
: yay!

#+name: some-other-block
#+begin_src elisp
(message "I ask to run")
#+end_src

#+RESULTS: some-other-block
: I ask to run


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: execute elisp link without prompt
  2021-05-21 22:01     ` Tom Gillespie
@ 2021-05-22  6:02       ` Colin Baxter
  0 siblings, 0 replies; 5+ messages in thread
From: Colin Baxter @ 2021-05-22  6:02 UTC (permalink / raw)
  To: Tom Gillespie; +Cc: , emacs-orgmode

>>>>> Tom Gillespie <tgbugs@gmail.com> writes:

    >> In the end I've set as to nil as a local variable
    > If you want something a bit more secure you could use a function
    > that checks the block name ("some-block" in this example). Best!
    > Tom

    > (lambda (_lang _body) (not (string= "some-block" (plist-get (cadr
    > (org-element-at-point)) :name))))

    > #+begin_src elisp (setq-local org-confirm-babel-evaluate (lambda
    > (_lang _body) (not (string= "some-block" (plist-get (cadr
    > (org-element-at-point)) :name))))) #+end_src

    > #+name: some-block #+begin_src elisp

    > (message "yay!")  #+end_src

    > #+RESULTS: some-block : yay!

    > #+name: some-other-block #+begin_src elisp

    > (message "I ask to run") #+end_src

    > #+RESULTS: some-other-block : I ask to run


Thanks Tom. I'll try this.

Best wishes,

Colin Baxter.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-22  6:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-21 16:11 execute elisp link without prompt Colin Baxter
2021-05-21 16:28 ` Nicolas Goaziou
2021-05-21 19:17   ` Colin Baxter
2021-05-21 22:01     ` Tom Gillespie
2021-05-22  6:02       ` Colin Baxter

Code repositories for project(s) associated with this 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).