Mariusz Borkowski - strona prywatna
Blog: async-shell dla skrótów klawiszowych

Table of Contents

Strona głównaDydaktykaO mnie/dane adresoweBlog

async-shell dla skrótów klawiszowych

Używając shell-command emacs jest blokowany w momencie gdy program, który wywołujemy ''trwa dłużej'' (np. wyświetlanie okna z obrazkiem) i nie mamy możliwości jednoczesnego korzystania z emacsa i wywołanego programu (np. edycja tekstu w emacs w trakcie oglądania obrazka w matplotlib itp.).

Przydatne wtedy jest polecenie async-shell-tangle.

Poniżej przykład ''nieblokującego'' wywołania skryptu pythona wewnątrz kontenera docker. (Skrypt jest najpierw ''tanglowany'' z tekstu).

(defun f5-fun ()
  (interactive)
  (org-babel-tangle)
  (async-shell-command (concat "cd /home/mb/projects/test1/ && docker run     --rm     --name temp    --net=host     -e DISPLAY     -v ${HOME}/.Xauthority:/home/user/.Xauthority -v \"$(pwd)/src/PoissonC/:/tmp\"     docker-image-name -c \"python3 inverse.py\" " ) )
)

(global-set-key [f5] 'f5-fun)

Author: mb

Date: 2025-02-25 Tue 19:25

Emacs 29.4 (Org mode 9.6.15)