【问题标题】:edit a remote file with vim用 vim 编辑远程文件
【发布时间】:2012-05-25 15:45:37
【问题描述】:

我正在尝试使用此命令使用 vim 7.2 编辑远程文件 ":e scp://username@host//home/oracle/filename.ksh"。但我收到此错误“scp:未找到”。然后我把 scp 文件放在 home/oracle 中。但我仍然得到同样的错误。我错过了什么?

【问题讨论】:

  • 你不能那样做 - 你为什么要编辑 scp 命令?
  • @AdrianCornish 他正在尝试使用 KDE 协议(不确定其他 DM 是否也允许。)
  • @kaoD 你在说什么? scp = Secure Copy 它与 Windows 管理员无关 - OMG - 你知道你在说什么
  • 哪个版本的vim? superuser.com/questions/148865/…
  • @AdrianCornish vim 6.0 以后可以使用 scp refs 和 :e。参见例如this vim wiki

标签: linux vim scp


【解决方案1】:

从 Vim 6.x 开始,netrw 插件 被安装为标准插件。因此您可以通过 ftp、rcp、scp 或 http 编辑文件。

对于scp 的操作很有用,打开文件如下:

vim scp://remoteuser@server.tld//path/to/document

你会得到很多关于Vim tips pages的信息。

【讨论】:

  • 另一个选项,根据提供的数据,来自:help netrw::Nread "scp://[user@]machine[[:#]port]/path,或:Nread "scp://username@host/home/oracle/filename.ksh"
  • 这是很好的信息,但它并没有真正解决问题。 Chemicalkt 已经在尝试使用 netrw/:e scp 并遇到问题
  • @pb2q 最后@chemicalkt问题与shell有关,因为它不允许在服务器上做scpvim
【解决方案2】:

根据您的操作系统软件配置,您可以交替使用 fuse 和 sshfs 来完成此操作。


在大多数发行版中打包为 sshfs,这使得用户(取决于您的用户权限策略)可以在本地文件系统的某处实际挂载 ssh 位置。

命令看起来像这样(假设你已经安装了 sshfs):

sshfs <user>@<host>:<remote_location> <local_path>

一个例子:

sshfs root@test.example.org:/var/www /mnt/sshfsmounts/www

这样做,您可以安全地编辑远程文件,就像它们是本地文件系统的一部分一样,使用

vim /mnt/sshfsmounts/www/index.php

例如。


这里有一些有用的链接:

[1] - http://en.wikipedia.org/wiki/SSHFS

[2] - http://fuse.sourceforge.net/sshfs.html

[3] - http://www.linuxjournal.com/article/8904


请注意,您在挂载的 ssh 文件系统上拥有的权限是为sshfs 命令中指定的用户应用的权限,由您在本地文件系统上为挂载点拥有的权限完成。这意味着您基本上需要在指定的 sshfs 用户下对挂载点和 ssh 主机具有写入权限。

【讨论】:

    【解决方案3】:

    你应该 ssh 到host,然后在那里使用 vim 的副本来编辑文件:

    ssh username@host
    vim /home/oracle/filename.ksh
    

    否则,如果必须,在本地(vim 之外)scp 文件,编辑它,然后将文件 scp 回host

    scp username@host:/home/oracle/filename.ksh .
    vim filename.ksh
    scp filename.ksh username@host:/home/oracle/
    

    【讨论】:

    • 好像我没有得到基本的东西......我应该在哪里点击这些命令?
    • @chemicalkt - 从你的 shell(例如 bash),在启动 vim 之前。
    • 我在 Windows 上,我使用安全 shell 客户端(软件)连接到 linux 服务器。在安全 shell 客户端提供的 bash shell 中,我尝试 vim,但它显示“vim: command not found”。
    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多