我正在尝试使用此命令使用vim 7.2编辑远程文件 “:e scp://username@host//home/oracle/filename.ksh”。但我得到这个错误“scp:not found”。然后我将scp文件放在home / oracle中。但我仍然得到同样的错误。我错过了什么?
答案 0 :(得分:17)
自Vim 6.x起, netrw插件作为标准插件安装。因此,您可以通过ftp,rcp,scp或http。
编辑文件对于scp
操作,按以下步骤打开文件非常有用:
vim scp://remoteuser@server.tld//path/to/document
您可以获得Vim tips pages上的大量信息。
答案 1 :(得分: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/
答案 2 :(得分:3)
根据您的操作系统软件配置,您可以使用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主机上具有写访问权。