В emacs я могу сделать что-то подобное в интерактивном режиме:
M-x eshell
cd /sudo:privileged@myserver:
/path/to/mycommand
Это приятно и все, но мне бы очень хотелось иметь возможность делать что-то подобное в коде elisp, как часть функции для автоматизации мирской задачи:
(shell-command "/sudo:privileged@myserver:/path/to/mycommand")
Это не совсем работает. Очевидно, что shell-команда пытается найти путь / sudo: privileged @ myserver: и по понятным причинам жалуется.
Существует ли механизм, с помощью которого я могу запускать произвольную команду на удаленном сервере программно? Я знаю, что в крайнем случае я мог бы прибегнуть к вызову `(shell-команда" ssh privileged @ myserver / path / to / mycommand "). К сожалению, из-за особенностей сети, в которой я нахожусь, я в некоторой степени зависел от функции прокси-сервера tramp multihop, поэтому было бы проще сделать это из tramp.
Я посмотрел на tramp.el, чтобы увидеть, как они реализуют свой перехватчик tramp-handle-shell-command, но не похоже, что они рассматривают подобные случаи, или, может быть, мне нужно обмануть их, используя правый буфер первым. Какие у меня варианты?
(я использую GNU Emacs, а не xemacs, если это имеет значение).