用vim编辑远程文件

时间:2012-05-18 03:29:11

标签: linux vim scp

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

3 个答案:

答案 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主机上具有写访问权。