我正在尝试使用此命令“:e scp://username@host//home/oracle/filename.ksh”使用vim 7.2 编辑远程文件。但我收到此错误“scp:未找到”。然后我把 scp 文件放在 home/oracle 中。但我仍然得到同样的错误。我错过了什么?
3 回答
从 Vim 6.x 开始,netrw 插件作为标准插件安装。因此,您可以通过 ftp、rcp、scp 或 http 编辑文件。
对于scp
操作,打开文件很有用,如下所示:
vim scp://remoteuser@server.tld//path/to/document
您会在Vim 提示页面上获得大量信息。
根据您的操作系统软件配置,您可以交替使用 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 主机具有写访问权限。
您应该 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/