Sea*_*ean 18
您可以根据需要一次打开多个终端和外壳.只需使用M-x rename-buffer更改现有的名称*term*或*shell*缓冲区,你做下一次M-x term或者M-x shell,一个全新的缓冲区将被创建.在这种情况下M-x shell,前缀参数将使您被提示输入新shell缓冲区的名称,如offby1所述.
几年前,我有一份工作,我必须定期登录名为"host01.foo.com","host02.foo.com"等的各种生产服务器.我写了一个像这样的小功能,以使其更容易管理他们所有:
(defun ssh-to-host (num)
(interactive "P")
(let* ((buffer-name (format "*host%02d*" num))
(buffer (get-buffer buffer-name)))
(if buffer
(switch-to-buffer buffer)
(term "/bin/bash")
(term-send-string
(get-buffer-process (rename-buffer buffer-name))
(format "ssh host%02d.foo.com\r" num)))))
Run Code Online (Sandbox Code Playgroud)
然后我把这个命令绑定到(比如说)s-h(超级H),让我只需输入M-5 s-h.如果我还没有命名的缓冲区*host05*,它将启动一个新的终端仿真器缓冲区,重命名为*host05*,并将我ssh到host05.foo.com.如果缓冲区*host05*已经存在,它只会切换到它.相当方便!