我在Ubuntu 9.10上使用GVIM。我正在寻找正确的方法来配置GVIM,以便能够通过例如ftp来编辑远程文件(HTML,PHP,CSS)。
error detected while processing BufEnter Auto commands for "*":E472: Command failed.
那么如何使用GVIM编辑我本地主机上的远程文件?
答案 0 :(得分:44)
我发现在ssh上运行文件系统(通过 sshfs )比让编辑器处理这些东西或在ssh隧道上运行编辑器本身更好。
所以你需要
apt-get install sshfs
然后
sshfs remoteuser@remotehost:/remote/path /local/mountpoint
这样就可以编辑远程文件,就像它们在本地文件系统上一样。
为了使它更平滑,你可以在/ etc / fstab
中添加一行sshfs#remoteusername@remotehost:/remote/path /local/mountpoint fuse user,noauto
出于某种原因,我发现在尝试此操作时我必须使用fusermount -u /local/mountpoint
而不是umount /local/mountpoint
。也许这只是我的发行版。
最近我还注意到,装载用户必须在fuse
组中。所以:
sudo addgroup <username> fuse
当然,另一个流行的选择是在一台机器上的GNU Screen会话中运行vim(而不是gvim),并通过ssh从任何地方连接到该会话。整天在工作和晚上编码你的办公室电脑,重新连接到你的gnu屏幕会话,并准确地选择你离开的地方。我使用发现更丰富的调色板是我在使用vim时唯一真正错过gvim的东西,但实际上可以修复感谢to a fork of urxvt,它可以让你自定义整个256位色调,而不仅仅是16位色调调色板的位置,大多数终端仿真器都可以让您自定义。
答案 1 :(得分:8)
有一种方法就是使用远程主机的副本,使用SSH将X11客户端转发给你,如下所示:
user@local:~/$ ssh -X user@host
...
user@host:~/$ gvim file
后一个命令应该在桌面上打开gvim。当然,这依赖于首先安装了X11 / gnome / gvim的远程主机,这可能不是您正在寻找的解决方案/在您的情况下的选项。
注意:X11转发可能存在安全风险。
答案 2 :(得分:6)
为了让netrw无缝工作,我相信你需要不处于兼容模式。
尝试
:设置nocompatible
然后
:编辑scp:// host / path / to / file
答案 3 :(得分:5)
试试这个
:e scp://username@remotehost//path/to/file
请注意,在remotehost之后使用//是故意的,它提供了文件的绝对路径 :)
http://www.celsius1414.com/2009/08/19/how-to-edit-remote-files-with-local-vim/
答案 4 :(得分:2)
vim提示wiki上有一篇文章Editing remote files via scp in vim。
答案 5 :(得分:1)
编辑:通过ssh打开文件的密钥验证不一定。 Vim会提示输入密码。
如果netrw.vim在启动时被vim加载,那将会很有用。
:echo exists("g:loaded_netrwPlugin")
要通过ssh打开文件,您需要服务器授权密钥中的本地计算机公钥。 vim文档中的以下帮助部分很好地解释了它。
:help netrw-ssh-hack
导出公钥的快速方法是使用 ssh-copy-id (如果可用)。
ssh-copy-id user@host
并查看有关其他协议的网络文件编辑的netrw文档。
:help netrw
HTH。
答案 6 :(得分:0)
根据文档,在读取文件并创建缓冲区后处理BufEnter,所以我的猜测是netrw成功读取了文件,但你有一个插件假定文件在本地文件系统上并且正在尝试访问它,例如运行ctags。
尝试禁用除默认Vim之外的所有插件脚本,然后编辑文件。
另外,尝试编辑目录以查看netrw是否可以读取 - 您需要将/放在最后,以便netrw知道它是一个目录。
答案 7 :(得分:0)
关于您的命令,:e scp://username@remotehost/./path/to/file:请注意,对于netrw,scp是相对于该远程主机上的主目录获取的。为避免家庭相对路径,请删除“。”;即。 :e scp:// username @ remotehost // path / to / file。
答案 8 :(得分:-1)
在Windows下载/安装Dokan库和Dokan SSHFS,这是this page上的第一个和最后一个链接。
答案 9 :(得分:-2)
我认为您无法使用本地运行的GVIM直接编辑远程文件。但是,正如其他人所指出的那样,这是绝对可能的。这看起来很有趣;我会检查一下。我将把剩下的帖子留在这里,以防它对其他人有用,作为替代方法。即使您没有对该文件的SSH访问权限(即,您只有FTP,或S3等),此方法也可以使用。
但是,您可以通过将GVIM绑定到图形文件传输应用程序中来获得该效果。例如,在OS X上,我使用CyberDuck传输文件(FTP,SFTP等)。然后,我将它配置为使用GVIM作为我的编辑器,因此我只需双击远程列表中的文件,CyberDuck将下载该远程文件的副本,并在GVIM中打开它。当我将其保存在GVIM中时,CyberDuck会将文件上传回远程主机。
我确信此功能并非CyberDuck独有,并且可能存在于大多数更好的文件传输实用程序中。