Mariusz Borkowski - strona prywatna
Blog: async-shell dla skrótów klawiszowych
Table of Contents
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)