Emacs shell-command与tramp-mode等效

时间:2010-12-02 22:15:02

标签: emacs elisp tramp

在emacs中,我可以以交互方式执行此类操作:

M-x eshell< return>

cd /sudo:privileged@myserver:
/path/to/mycommand

这是令人愉快的一切,但我真的希望能够在elisp代码中做这样的事情,作为自动执行普通任务的功能的一部分:

(shell-command "/sudo:privileged@myserver:/path/to/mycommand")

这不太奏效。显然shell命令试图找到路径/ sudo:privileged @ myserver:并且可以理解抱怨。

是否有一种机制可以通过编程方式在远程服务器上运行任意命令?我知道,在紧要关头,我可以求助于调用`(shell-command“ssh privileged @ myserver / path / to / mycommand”)。不幸的是,由于我所处的网络怪癖,我在某种程度上依赖于tramp多跳代理功能,所以从tramp中做这件事似乎更简单。

我看过tramp.el看看他们如何实现他们的tramp-handle-shell-command intercepter,但看起来他们不会考虑这种情况,或者我可能需要欺骗它使用首先是正确的缓冲我有什么选择?

(我使用的是GNU Emacs,而不是xemacs,以防万一)。

1 个答案:

答案 0 :(得分:4)

如果要在eshell-command中运行命令,请使用eshell