编辑远程文件的解决方案

经常有需求要编辑远程文件 找到了一个解决方案

但是好像有点远古了 .emacs.d下没有server目录呀

tramp mode?用它处理过几次ssh server上的代码

  1. tramp 通过ssh 打开文件
  2. 保存成书签
  3. 以后随时可以从书签打开远程文件
1 个赞

你这想法也不错 我觉得本地挂载可能对我来说最好 另外你说保存成书签是啥

bookmark?

这篇linux-china翻译的文章挺不错,文中介绍的第一件事就是远程编辑。

Emacs 早在网络流行化之前就实现了透明的网络编辑能力了,而且时至今日,它仍然提供了最流畅的远程编辑体验。Emacs 中的 Tramp 模式(以前称为 RPC 模式)代表着 “透明的远程(文件)访问,多协议Transparent Remote (file) Access,Multiple Protocol”,这准确说明了它提供的功能:通过最流行的网络协议轻松访问你希望编辑的远程文件。目前最流行、最安全的能用于远程编辑的协议是 OpenSSH,因此 Tramp 使用它作为默认的协议。

在 Emacs 22.1 或更高版本中已经包含了 Tramp,因此要使用 Tramp,只需使用 Tramp 语法打开一个文件。在 Emacs 的 “File” 菜单中,选择 “Open File”。当在 Emacs 窗口底部的小缓冲区中出现提示时,使用以下语法输入文件名:

/ssh:[email protected]:/path/to/file

如果需要交互式登录,Tramp 会提示你输入密码。但是,Tramp 直接使用 OpenSSH,所以为了避免交互提示,你可以将主机名、用户名和 SSH 密钥路径添加到你的 ~/.ssh/config 文件。与 Git 一样,Emacs 首先使用你的 SSH 配置,只有在出现错误时才会停下来询问更多信息。

Tramp 非常适合编辑并没有放在你的计算机上的文件,它的用户体验与编辑本地文件没有明显的区别。下次,当你 SSH 到服务器启动 Vim 或 Emacs 会话时,请尝试使用 Tramp。

1 个赞

试了一下 你这方法还是不错的 文件不大的情况下 很棒

据说tramp mode 在大文件下 会很卡

大文件卡是正常的,毕竟要传输的数据太大耗时肯定多。

我一般是在远程服务器上面运行一个有配置好的 emacsdocker 然后用 emacs -nw 来编辑文件。

每次新来一个机器 你不就得在部署一遍吗?

有时候使用终端下的Emacs进行远程链接,但是终端下的Emacs和GUI emacs颜色和字体都不一样。 这个大家有什么好办法吗?我的系统是Manjaro i3,打开的终端可能从系统的配置文件.xresource 等什么文件读取了终端的一些配置。这个如何使得终端的emacs和GUI emacs的颜色、字体等完全一样。

使用支持真彩色的terminal。还有其他一些配置。细节见 https://github.com/redguardtoo/emacs.d#true-colors-in-terminal-emacs

Docker Image 放在内网的仓库里面,部署很快的, 大概 30s。