当我通过SSH连接到我的工作服务器时,我正在尝试使用Sublime Text 2作为编辑器,我很难过。我发现这个http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/(在许多其他帖子中)看起来可能会有所帮助,但我并没有完全遵循它,尤其是我应该为第5行中的远程变量添加什么值。我设置了“/用户/路径/到/本地/复制“到我的本地根目录,但我不知道这是否正确或是否还有更多工作要做。有什么想法吗?我在OSX10.8上
答案 0 :(得分:156)
有三种方式:
使用SFTP插件(商业)http://wbond.net/sublime_packages/sftp - 我个人推荐这个,因为在设置带密码的公共SSH密钥后,它是安全,简单且值得每一分钱http://opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/
< / LI>使用评论中提到的osxfuse
和sshfs
将远程安装为本地文件系统。这可能有点困难,具体取决于OSX版本和您使用UNIX文件系统的技能。
像rmate一样使用某种本地守护进程远程隧道进行文件编辑(非常困难,繁琐,但兼容sudo)http://blog.macromates.com/2011/mate-and-rmate/
另外,从理论上讲,你可以在远程服务器上安装X11并通过VNC或X11转发在那里运行Sublime,但是没有必要这样做。
答案 1 :(得分:99)
您可以使用rsub,其灵感来自TextMate的rmate
。从描述:
Rsub是SubMime Text 2的TextMate 2'rmate'功能的实现,允许使用SSH端口转发/隧道在远程服务器上编辑文件。
Here's a good tutorial了解如何正确设置。
答案 2 :(得分:65)
我在Windows上使用过4种方法: SFTP , WinSCP , Unison 和 Linux上的Sublime Text with X11通过SSH转发到Windows (是的,你可以做到这一点,没有混乱的配置和使用免费工具)。
如果您可以在Linux机器上安装软件,第四种方法是最好的。
第四种方式:
<强> MobaXterm 强>
subl
注意: 如果它抱怨某个库,则调用subl时 - 确保安装它们以成功从mobaxterm调用sublimetext。
如果您无法在Linux机器上安装软件,最好的是Unison。为什么呢?
<强> SFTP 强>
设定: 安装SFTP Sublime Text包。此套餐需要许可证。
在sftp-config中,我通常设置:
"upload_on_save": true,
"sync_down_on_open": true,
这个,除了机器的SSH终端外,还给我一个相当无缝的远程编辑体验。
<强>的WinSCP 强>
从那时起,WinSCP将保持您的更改同步。
使用SublimeText在本地文件夹中工作。只需确保将Sublime Text设置为猜测正在编辑的文件的行结尾。
<强>的Unison 强>
我发现如果源树很大(大约几百MB,层次很深),那么上面描述的WinSCP方法可能会有点慢。使用Unison可以获得更好的性能。缺点是Unison不是自动的(您需要通过按键触发它)并且需要在Linux机器上运行服务器组件。好的一面是传输速度非常快,非常可靠,忽略文件,文件夹和扩展程序非常容易设置。
答案 3 :(得分:32)
作为@ ubik回答的后续内容,以下是在您的远程服务器上运行'subl'命令的三个简单(一次性)步骤:
rsub
包
[本地]执行以下Bash命令(这将设置SSH tunnel,这是rsub的秘密酱油):
printf "Host *\n RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
[服务器]在远程服务器上执行以下Bash命令(这将安装'subl'hell命令):
sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; sudo chmod +x /usr/local/bin/subl
瞧! 您现在通过SSH使用Sublime Text。
您可以使用类似subl ~/test.txt
答案 4 :(得分:10)
我在使用MaxOS,对我来说最方便的方法是使用免费的CyberDuck(也适用于Windows)。您可以使用本地编辑器连接到远程SSH文件系统并编辑文件。 CyberDuck所做的是将文件下载到本地操作系统上的临时位置,然后使用编辑器打开它。保存文件后,CyberDuck会自动将其上传到您的远程系统。它看起来很透明,就像您使用本地编辑器编辑远程文件一样。
答案 5 :(得分:8)
你可以尝试一些我称之为“xeno”的东西。它允许您通过SSH连接在Sublime Text(或任何本地编辑器)中打开文件/文件夹,并自动将更改同步到远程计算机。它应该适用于几乎所有POSIX系统(我自己从OS X使用它连接到Linux机器并编辑Sublime Text中的文件)。它是免费和开源的。我会喜欢一些反馈。
有关更多信息:它基本上是一个用Python编写的Git / SSH mashup,允许您在本地编辑器中编辑远程计算机上的文件和文件夹。您不必配置内核模块,您不需要持久连接,它是全自动的,并且它不会干扰现有的源代码控制,因为它使用了一个失效的Git存储库。此外,因为它是基于Git构建的,所以它非常快并且支持自动合并可能在两端都有变化的文件,这与SSHFS / SFTP不同,后者只会破坏任何具有较旧时间戳的文件。
答案 6 :(得分:5)
我知道这已经过时了,但我有一个很酷的方式来做这件事值得分享。
打开WinSCP.exe并登录我想要的远程服务器(我有 发现在附加...之前登录很重要。
在WinSCP的首选项中 - 要更改的两个设置。选择资源管理器类型界面而不是指挥官 - 所以你不会看到本地文件。除非你想(但这似乎在这里很糟糕)。将Sublime设置为默认编辑器。
打开ConEmu后,右键单击标签栏并选择Attach to...
选项。将打开一个对话框,其中包含正在运行的应用选择,WinSCP并选择确定。 ConEmu现在将有一个打开的选项卡,WinSCP显示您的远程文件。
右键单击WinSCP选项卡,然后选择New console...
。对话框打开后,输入系统上Sublime可执行文件的路径。在按Start
之前,在显示New console split
的框中,选择单选按钮to right
并设置百分比。我通常会选择75%,但你可以根据自己的喜好自定义它,以后可以更改。
Sidebar->Hide Sidebar
和bam,你现在拥有与本地完全相同的远程文件 - 当然还有一些注意事项是远程编辑任何东西。尽管如此,WinSCP正在快速发展。我有两台显示器 - 左侧显示器显示器和Chrome浏览器,右侧显示器显示代码编辑器。同样在ConEmu
中,我在我正在处理的网站上创建了另一个标签和ssh,因此我可以执行远程运行gulp
或grunt
以及操作来自命令行。认真加快了发展。
这是一个截图:
答案 7 :(得分:5)
您可以使用sftp在您的位置计算机上安装远程目录,然后只需按照常规方式使用Sublime文本打开文件。
要使用sftp挂载远程目录,请在Linux文件管理器中输入以下内容;
sftp://user@remote_box.com:22/home/user/code_directory
根据您的网速,这似乎很慢。但这对我有用。
答案 8 :(得分:5)
这是本地编辑生活在远程主机上的文件的最简单方法,您之前已将ssh设置为远程IP
# issue on local box
sudo apt-get install sshfs # on local host install sshfs ( linux )
# on local box create secure mount of remote directory
export REMOTE_IP=107.170.58.249 # remote host IP
sshfs myremoteuserid@${REMOTE_IP}:/your/remote/dir /your/local/dir # for example
完成!!!
现在在本地主机上刚刚开始编辑文件...当你在本地列出dir时,它可能不会列出任何东西,直到你进入子目录或列出一个特定的文件...延迟加载...这不会影响编辑文件
subl /your/local/dir/magnum_opus.go # local file edit using sublime text
所以上面实际上是在
编辑远程文件/your/remote/dir/magnum_opus.go # remote file on box $REMOTE_IP
For OSX or Windows see this tut from the kind folk over on Digital Ocean
答案 9 :(得分:4)
类似于osxfuse的另一个mac解决方案是使用Panic Software的Transmit FTP客户端,它允许您将远程文件夹挂载为本地磁盘。它支持SFTP,非常安全。
答案 10 :(得分:3)
我一直致力于一个名为GiySync的项目。它仍然需要一些工作,但它是开源的,我每天都在使用它几年。我还在开发一个名为GitSyncApp的本机OS X版本
目前它只是OS X,但它应该很容易添加对Linux的支持,也可能是Windows。
它通过观察文件系统事件来工作,并使用git来同步本地计算机和服务器上的项目文件夹。
我尝试了其他解决方案,如osx fuse,Expand Drive,Transmit,使用rsync的几种解决方案等等。它们都可以正常工作&#39; OK&#39;对于小型项目,但如果您使用大量代码,那么它们对我不起作用。
许多文件系统选项都会进行缓存以提高性能,这很好,直到它没有。就像您正在与其他人合作而其他人更改服务器上的文件一样。
如果我在一个片状或慢速网络上,我最终会遇到空文件,我也会遇到问题。或者没有同步的文件,然后缓存变得奇怪;希望你最近承诺。使用git解决了这个问题,因为它会检查每个提交的完整性。
两个奖励功能:
答案 11 :(得分:0)
根据您的具体需求,您可以考虑使用BitTorrent Sync。在家用PC和工作PC上创建共享文件夹。编辑家用PC上的文件(使用Sublime或任何你喜欢的),它们会在你保存时自动同步。 BitTorrent Sync不依赖于存储文件的中央服务器(Dropbox等),因此理论上应该清楚由于第三方存储敏感信息而导致的任何问题。
答案 12 :(得分:0)
一个对我有用的解决方案 - 在Mac上本地编辑,并使文件自动同步到远程计算机
确保您已无密码登录远程计算机。如果没有,请按照以下步骤http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/
在〜/ Library / LaunchAgents / filesynchronizer.plist中创建一个文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>filesynchronizer</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/rsync</string>
<string>-avz</string>
<string>/Users/USERNAME/SyncDirectory</string>
<string>USERNAME@REMOTEMACHINE:~</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/USERNAME/SyncDirectory</string>
</array>
</dict>
</plist>
在终端窗口中运行
launchctl load ~/Library/LaunchAgents/filesynchronizer.plist
那就是它。对〜/ SyncDirectory中任何文件的任何更改都将同步到远程计算机上的〜/ SyncDirectory。本地更改将覆盖任何远程更改。
这将创建一个监视SyncDirectory的launchd作业,无论何时发生任何更改,都会运行rsync以将目录同步到远程计算机。
答案 13 :(得分:0)
lsyncd似乎是sshfs方法的不错替代品。如果你使用“-delay 0”,它可以实时工作。
答案 14 :(得分:0)
这适用于Mac和Windows用户(我在Mac上使用)。多年来,我已经使用了列出的几个答案,并且发现FileZilla非常适合我在需要SSH访问的远程主机上编辑文件时的需求。设置也很快。
View/Edit
。 这会调出我的默认编辑器(Sublime),但它将与任何 您已安装的编辑器。