需求

Tramp是Emacs用来远程操作服务器的大杀器 但一直以来我有个需求 用Tramp快速的登录到服务器 这里的快指的是操作方便 因为原来的方法可不快:

  • C-x C-f 一个远程的路径 这个时候至少要半分钟罢(服务器是Debian的 默认开启反向解析等东西 如果不取消更慢)
  • M-x shell
  • 如果已经打开了一个shell 这是最常见的情况 带参数运行 C-u M-x shell 强制新建一个

好复杂啊

方案

虽然隐隐约约知道 当前目录 也就是default-directory在远程的话默认就连远程服务器 但一直没有实际搞 今天实在受不了了 搜了一下 发现这个

稍微改改 变成我的

1
2
3
4
(defun bandwagon-shell ()
(interactive)
(let ((default-directory "/sshx:root@10.22.17.13#29:/root/"))
(shell (generate-new-buffer-name "*bandwagon*"))))

伟大的Emacs

补充方案

编辑~/.ssh/config加入如下内容

1
2
3
4
Host bandwagon
HostName 10.22.17.13
Port 29
User root

上面的代码就可以缩短成"/sshx:bandwagon:/root/"