如何通过SSH使用Sublime

252
我想在远程连接到工作服务器时,使用Sublime Text 2作为编辑器,但是我遇到了困难。我找到了http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/这篇文章(还有其他很多文章),看起来可能会有所帮助,但是我不清楚第5行的remote变量应该放哪些值。我将“/Users/path/to/local/copy”设置为本地根目录,但我不确定是否正确,或者是否还需要进行其他设置。我的操作系统是OSX10.8。

13
我发现在我的Mac上使用osxfusesshfs更容易本地挂载远程目录,然后通过ST2进行编辑。 - AGS
有一个流行的ST2插件用于sftp。这里进一步解释了一个系统,我相信AGS正在参考:http://superuser.com/questions/134140/mount-an-sshfs-via-macfuse-at-boot。我在登录时遇到了自动加载的问题,不得不使用Platypus制作的解决方法登录脚本。我还需要一个更好的macfuse版本--如果您感兴趣,我会看看能否找到链接。 - lawlist
在Snow Leopard(10.6.8)中,我需要更新MacFuse的核心(即macfuse-core-10.5-2.1.9.dmg) - 这是我获取它的链接:http://blog.urbaninsight.com/2011/04/18/fixing-macfuse-latest-os-x-kernel 如果您有兴趣,这应该可以为您节省很多麻烦。 - lawlist
1
它可能不会实时,也许不太适合观看日志文件等内容,但通常设置gitolite是值得的。只需git pull,您就可以拥有本地的所有内容进行操作。然而,现在很多人都拥有快速的互联网,不会感到网络延迟...这完全取决于您的设置。 - user1115652
相关:通过SSH在Eclipse上远程处理项目。一些答案,例如我的回答,重叠,并且可以使用_任何_文本编辑器或IDE工作,因为我只是通过git同步整个存储库。 - Gabriel Staples
看起来sshfs与ARM Mac不兼容@AGS(我知道你的帖子是在它们存在之前的:D) - volvox
15个回答

3
我一直在开发一个名为GitSync的项目。它仍需要一些工作,但它是开源的,我已经使用了几年。我还正在开发一个本地的OS X版本,我称之为GitSyncApp
现在它只支持OS X,但很容易添加对Linux的支持,可能也可以添加对Windows的支持。
它通过监听文件系统事件并使用git来同步本地计算机和服务器上的项目文件夹。
我尝试过其他解决方案,如osx fuse、Expand Drive、Transmit、使用rsync的几个解决方案等。它们对于小项目都可以“OK”,但如果你正在处理大量代码,则对我来说并不起作用。
许多文件系统选项会进行缓存以提高性能,这很好,直到出现问题。例如,如果您与其他人共同使用并且其他人更改了服务器上的文件。
我也遇到了一些问题,如果我在一个不稳定或网络慢的环境下,我最终会得到空文件。或者文件没有同步,然后缓存变得奇怪; 希望你最近已经提交了。使用git解决了这个问题,因为它检查每个提交的完整性。
两个额外的功能:
1. 每次保存都会生成一个提交。这并不是非常有用,但如果您需要回到过去,可以使用它。 2. 它适用于任何文本编辑器。

我做了非常类似的事情,并在这里解释:通过SSH在Eclipse上远程工作。我编写的脚本是sync_git_repo_from_pc1_to_pc2.sh。阅读自述文件:README_git-sync_repo_from_pc1_to_pc2.md - Gabriel Staples

0

lsyncd 似乎是 sshfs 方法的不错替代品。如果你使用“-delay 0”,它可以实时工作。


0
一个对我非常有效的解决方案 - 在 Mac 上本地编辑,然后自动将文件同步到远程机器。
确保您可以无需密码登录到远程计算机。如果不能,请按照此步骤http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/进行设置。
在~/Library/LaunchAgents/filesynchronizer.plist中创建一个文件,并使用以下内容:
``` Label filesynchronizer ProgramArguments /usr/bin/rsync -avz /Users/USERNAME/SyncDirectory USERNAME@REMOTEMACHINE:~ WatchPaths /Users/USERNAME/SyncDirectory ```
在终端窗口中运行以下命令:
``` launchctl load ~/Library/LaunchAgents/filesynchronizer.plist ```
完成了。任何对~/SyncDirectory中的文件的更改都将同步到远程计算机上的~/SyncDirectory中。本地更改将覆盖任何远程更改。
这将创建一个 launchd 作业,监视 SyncDirectory,并在那里发生任何更改时运行 rsync 将目录同步到远程机器。

这是双向同步吗? - bitten
不;仅限本地到远程机器 - Ran Locar

0

使用FileZilla

适用于Mac和Windows用户(我在Mac上使用)。多年来,我使用了列出的几个答案,并发现FileZilla非常适合我在具有SSH访问权限的远程主机上编辑文件的需求。而且设置也很快。

  • 我配置一个新的服务器连接
  • 连接到服务器
  • 右键单击要编辑的文件,然后选择查看/编辑

这会打开我的默认编辑器(Sublime),但它可以与您安装的任何编辑器一起使用。

  • 保存文件后,Filezilla会自动提示我是否要“将此文件上传回服务器”,我点击“是”,然后它就更新了。

0
根据您的确切需求,您可以考虑使用BitTorrent Sync。在家用电脑和工作电脑上创建一个共享文件夹。在家用电脑上编辑文件(使用Sublime或其他您喜欢的软件),保存后它们将自动同步。BitTorrent Sync不依赖于存储文件的中央服务器(如Dropbox等),因此理论上您应该避免由于第三方存储敏感信息而产生的任何问题。

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