首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TextWrangler打开远程文件

使用TextWrangler打开远程文件
EN

Stack Overflow用户
提问于 2009-09-01 21:51:50
回答 6查看 7.2K关注 0票数 8

我目前在远程web服务器上编辑文件的解决方案是使用Fetch浏览远程机器,使用TextWrangler进行编辑。但是,由于我越来越习惯于在远程计算机上导航命令行(但不太习惯使用VIM...),我希望能够在远程计算机上键入类似“打开filename.txt”的内容,并在本地计算机上打开TextWrangler。我听说过“反向隧道”这个术语,但我不知道下一步该怎么做。我们非常感谢您的建议--谢谢!

EN

回答 6

Stack Overflow用户

发布于 2009-09-11 14:47:03

就我个人而言,我使用Cyberduck作为我的S/FTP浏览器。在Cyberduck的首选项中,您可以定义一个默认的文本编辑器来编辑远程文件。现在,当我选择一个文件时,只需点击Cmd+K,它就会在TextWrangler中打开。每当我保存时,更改都会自动传输到远程文件。

票数 4
EN

Stack Overflow用户

发布于 2011-02-07 16:24:44

实际上,我也想做同样的事情,但是没有人写出来,所以我今天弄明白了。

这有两个必需的部分和三个可选的部分:

  1. 在两台计算机上启用ssh登录(必需)
  2. 设置从远程计算机到您的计算机的ssh隧道(必需)
  3. 为ssh隧道设置别名(可选)
  4. 在远程计算机上为TextWrangler设置别名(可选)
  5. 设置ssh密钥,以便不必每次都输入密码(可选)H210

您需要能够从本地ssh到远程以运行命令,并且您需要能够从远程到本地ssh,以便它可以向TextWrangler发送命令。

要设置ssh隧道,您需要在本地计算机上运行命令,如下所示:

代码语言:javascript
复制
ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]

ssh和-N标志将ssh放在后台,让您留在机器上。-R标志将远程计算机上的端口绑定到本地计算机上的端口。在端口10022上联系远程计算机的任何内容都将发送到本地计算机上的端口22。远程端口可以是您想要的任何端口,但是您应该选择一个大于1024的端口以避免冲突,这样您就不必是root用户。我选择10022是因为它与ssh的默认端口22相似。将括号替换为您的用户名和计算机名。

您需要在登录后运行一次。为了使命令更容易使用,您可以在bash配置文件中添加别名。将以下内容添加到本地~/.bash_profile

代码语言:javascript
复制
alias open-tunnel='ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]'

当然,您可以选择您喜欢的任何别名。

一旦设置了隧道,就可以在远程机器上使用如下命令:

代码语言:javascript
复制
ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]//absolute/path/to/file.txt"

-p标志指示使用端口10022 (或您之前选择的任何端口)。这将导致远程计算机连接到您的本地计算机,并在不打开交互式ssh会话的情况下执行双引号中的命令。引号中的命令是您将在本地计算机上运行的命令,用于在TextWrangler中打开远程文件。

为了简化命令,您可以在bash配置文件中添加一个函数。将以下内容添加到远程~/.bash_profile

代码语言:javascript
复制
function edit { if [[ ${1:0:1} = "/" ]]; then abs_path="$1"; else abs_path="`pwd`/$1"; fi; ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]/$abs_path"; }

这里假设您没有在远程机器上安装TextWrangler命令行工具。如果这样做,则应该将函数命名为edit以外的其他名称。例如,tw。在这里,${1:0:1}查看函数的第一个参数的第一个字符,它应该是文件路径。如果不是以/开头,我们可以通过在开头添加当前工作目录(pwd)来确定绝对路径。现在,如果您使用/home/jdoe/some/directory/在远程计算机上运行edit some/other/directory/file.txt,则将在本地计算机上执行以下命令:

代码语言:javascript
复制
edit sftp://[username on remote machine]@[remote machine hostname]//home/jdoe/some/directory/some/other/directory/file.txt

最后,您应该在两个方向上设置ssh密钥,这样就不会每次都提示您输入密码。这是另一个人写的指南:http://pkeck.myweb.uga.edu/ssh/

票数 3
EN

Stack Overflow用户

发布于 2012-11-14 16:26:55

我不认为这会允许从命令行打开,但是

带有Remote-System-ExplorerEclipse还支持通过ssh连接编辑文件

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1364826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档