6

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

4

3 回答 3

18

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

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

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

您会在Vim 提示页面上获得大量信息。

于 2012-05-18T09:12:34.237 回答
4

根据您的操作系统软件配置,您可以交替使用 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 主机具有写访问权限。

于 2012-05-18T04:11:12.043 回答
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/
于 2012-05-18T03:33:31.423 回答