使用SSH打开本地文本应用程序以编辑远程文本文件?

16

我正在使用ssh登录VPS终端。

通常情况下,我可以在本地运行它。

mate <file>

然后它使用TextMate打开该文件。

是否可以使用相同的命令并以某种方式打开本地的TextMate应用程序但编辑远程文件?

如果您正在VPS中工作并且不想始终使用vim,则这将是很好的选择。


<a href="http://sshmenu.sourceforge.net/articles/bcvi/">bcvi</a> 正是这样做的,但是针对 vim。它依赖于 vim 对 scp:// 的内置支持,这可能会使 Textmate 的移植变得困难。 - Michael Kropat
6个回答

4
解决方案是使用sshfs挂载远程系统。在OS X上,例如可以使用Homebrew安装sshfs

文件系统通过SSH使用您的常规SSH凭据或密钥进行挂载,因此非常容易操作,然后您可以像本地目录一样浏览它并享受访问所有本地工具的好处。


SSHFS很有趣,直到与服务器的连接断开。然后你必须SIGKILL所有可见的东西。我不知道,也许我只是在使用旧版本。 - Michael Kropat
1
我不能保证SSHFS的特定情况,但是使用MacFUSE,如果我失去连接,驱动器会干净地卸载,并且我已经挂载了站点数天。你的情况可能有所不同。 - furtive
1
我曾经遇到过Michael描述的同样问题,即使重新连接设置也没有帮助。就sshfs的所有用途而言,我能够使用它的时刻通常以cron或手动rsyncs over ssh结束。 - Wrikken
1
SSHFS可以使用,但对我来说速度非常慢,甚至在同一建筑物内的服务器上也会出现“beachballing”的情况。为什么不直接在远程服务器上启动vim或使用Git/Mercurial在本地工作呢? - romainl
我以前使用过SSHFS,成功率很高。我发现设置SSH配置选项:ServerAliveInterval 60会有所帮助。它有助于减少连接中断的次数。 - Ian Lewis

4
您有不同的选择:
  • 使用(Mac)Fuse(由furtive推荐)挂载远程文件系统,
  • 同步您的远程目录:
    • 使用rsync(由eglasius推荐),
    • 使用SCM(如git或hg或其他),
  • 或者,这将是我首选的方法,使用Emacs(在您的情况下应该是Aquamacs)并使用tramp模式编辑远程文件。

我几年前曾经为一些项目做过这个,它完美地工作了,无论是在局域网还是广域网上。

如果您想坚持使用TextMate,则furtive的解决方案非常理想。 furtive的解决方案非常理想。


2

你还可以通过通过ssh使用rsync同步文件夹。

这样,你就可以在本地工作,并让rsync将其同步到服务器上。这可以由你显式启动或作为守护进程运行。


1

另一个选择是使用两个可用的Textmate Sync bundles之一 - 两者都使用rsync和ssh来保持远程和本地文件夹同步。

  1. Textmate remote sync bundle
    这是我使用的bundle。它看起来具有与第二个bundle完全相同的功能,但我先发现了这个。

  2. Textmate Sync bundle

我唯一要添加的警告是,第一次同步将清除远程文件夹并用本地文件夹的内容替换它。


1

如果你通过 ssh 连接到另一个终端,那么可以使用 cat 命令将文件内容导出并通过管道命令写入本地文件。 但我不认为你能够直接将其传输至本地编辑器。


一定有一些工具可以实现这个功能...听起来像是有人在我之前就已经考虑过了。 - never_had_a_name


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接