我在 Mac OS X 上使用 TextMate 进行开发。我需要编辑的文件在 Linux 机器上,并且我的 Mac OS X 上安装了 Linux 文件系统。在 TextMate 中打开和保存文件没有问题。
我想要做的是登录并在 Linux 机器上的命令行中工作,但能够执行远程命令 Mac 上的 TextMate 打开文件的命令,例如
user@linux $ mate <filename>
我希望在 Mac OS X 上的 TextMate 中打开该文件(因此将焦点从 Terminal.app 转移到 TextMate.app)。如何实现此效果?
答案1
前几天我也问了自己一个类似的问题,然后意识到这只需要一点脚本,所以我写了一个脚本来做这件事。我把它发布在 GitHub 上这里。这是您在远程系统上安装的 bash 脚本。它使用 SSH 重新连接到您的 Mac,通过 挂载 Linux 文件系统sshfs
,然后使用 OS X 的open
命令打开指定的文件。它接受大多数接受的参数open
,只是将它们传递过去,因此它相当灵活。我仍在调整它,所以如果您遇到任何问题,请告诉我。
我还被指出rmate
scp
,一个 TextMate 特定的 Ruby 脚本,它通过TextMate 的命令执行非常类似的操作mate
。这可能需要文本伴侣 2,其 alpha 版本目前在 GitHub 上可用。
答案2
我不相信这是可能的。一旦您ssh
进入远程计算机,您在命令行中输入的所有内容都会传递到远程计算机,而远程计算机无法在本地计算机上启动 TextMate。
答案3
您可以在 MacFUSE 上使用 sshfs,它允许您挂载(作为“本地”驱动器)任何您可以通过 ssh/sftp 访问的目录。
首先你需要安装 MacFUSE(它是 FUSE 的一个移植版 [http://fuse.sourceforge.net/]对于 Mac OSX),你可以从
http://code.google.com/p/macfuse/
它是一个标准的 OS X 软件包,您只需双击它即可安装。
然后你需要下载 sshfs(将 FUSE 与 ssh 联系起来的软件)
http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS
选择
sshfs-static-leopard.gz
sshfs-static-tiger.gz
根据您的操作系统版本。然后将其解压缩并放入您的路径中(在您下载它的地方打开一个终端,然后执行以下操作
gunzio sshfs-static*gz
sudo cp sshfs-* /usr/local/bin/sshfs
sudo chmod a+rx /usr/local/bin/sshfs
如果 gunzip 步骤返回错误,请不要担心,这可能是因为您的浏览器已经对其进行了解压缩)。
现在,打开终端并执行
mkdir local_mount_point
sshfs user@host:folder local_mount_point
您将能够在名为“local_mount_point”的本地文件夹中访问“主机”上“文件夹”的内容(当然,您可以随意命名)。因此,一个简单的
mate local_mount_point/filename
会做。
当然,您只需安装一次软件,然后您就可以随意连接(挂载)!
顺便说一句,TextWrangler 允许在不安装额外软件的情况下执行此操作(它可以通过远程主机上的 ssh 保存/打开文件)。
答案4
您可以使用连接ssh user@serverip -Y
当您在远程机器上执行图形命令时,它会将图形界面发送到本地机器的 X 服务器。
已编辑
抱歉,我误解了你的问题,实际上你想使用 mac 应用程序,而不是 Linux 机器上的图形应用程序……但 Windows 和 Linux 中有几种文本编辑器,它们使用插件通过 ftp 连接并编辑服务器文件。我在谷歌上搜索了类似的东西(我不是 mac 用户),我发现此链接为 textmate 准备一个 ftp/ssh 包。希望对你有帮助