设置emacs shell

时间:2012-07-23 01:37:42

标签: emacs startup

当我重启时,我经常(每周)在Emacs中做这种事情:

  1. 打开连接到RSH服务器的shell,执行一些命令,重命名缓冲区
  2. 为几个不同的远程计算机重复步骤
  3. 我在想:有没有办法可以在启动脚本中对这些设置进行硬编码?

2 个答案:

答案 0 :(得分:3)

这是一个启动shell,ssh-es到主机的函数,并在放入交互式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")

答案 1 :(得分:0)

我认为这样的事情可以帮到你:

(mapc (lambda (server)
    (shell (concat "*shell-" server "*"))
    (insert "ls")
    (comint-send-input)
    (insert "ps ax")
    (comint-send-input))
  '("server1" "server2"))

正如您所看到的,使用insert写入控制台,并使用comint-send-input就像点击终端中的返回键一样。 在这个例子中,ls和ps将在两个shell缓冲区

上执行