每周当我重新启动Emacs时,我经常会执行以下操作:
- 打开一个连接到RSH服务器的shell,执行一些命令,重命名缓冲区
- 为几个不同的远程机器重复步骤1
我在想:是否有一种方法可以在启动脚本中硬编码这些设置?
每周当我重新启动Emacs时,我经常会执行以下操作:
我在想:是否有一种方法可以在启动脚本中硬编码这些设置?
这里有一个函数,它可以启动一个shell,在ssh连接到一个主机后运行一个命令,然后进入交互式shell:
(defun start-remote-shell (host command)
(shell (format "*shell-%s*" host))
(sleep-for 0 500) ; Wait half a second for the prompt to appear
(insert (format "ssh -t %s %s'; exec bash -i'"
(shell-quote-argument host)
(shell-quote-argument (shell-quote-argument command))))
(comint-send-input))
您可以将此片段放入.emacs
文件中,然后按照您想要的特定调用进行操作,例如:
(start-remote-shell "server-one" "apache start")
(start-remote-shell "server-two" "mysql start")
(start-remote-shell "server-three" "foo start")
我认为这样的东西可以帮助你:
(mapc (lambda (server)
(shell (concat "*shell-" server "*"))
(insert "ls")
(comint-send-input)
(insert "ps ax")
(comint-send-input))
'("server1" "server2"))