大家好,我是良旭。今天我们讨论一个Vim的使用技巧——用Vim读写远程文件。为此,我们需要使用一个名为netrw.vim的插件。从Vim7.x开始,netrw.vim被设置为默认安装的标准插件。该插件允许用户通过ftp、rcp、scp、http等协议读取、写入、编辑和浏览远程文件。什么是插件netrw?netrw(Networkorientedreading,writingandbrowsing)插件不仅支持本地和远程终端跨网络编辑、读写文件,还支持浏览本地和远程终端目录。有关此插件的更多详细信息,请在Vim会话中输入helpnetrw。让我们看看如何使用Vim从本地系统读取和写入存储在远程Linux系统上的文件。在Linux系统上使用Vim读写远程文件读写远程文件的方法和编辑远程文件几乎一样。我们需要从本地系统读取远程文件。我们可以简单地使用以下命令打开它:$vimscp://cirdan@192.168.225.22/info.txt操作示例输入q退出文件。要从本地系统写入远程文件,首先使用上述命令打开文件,然后按i进入插入模式,然后就可以写入文件了。将需要写入的内容写入文件后,按ESC键退出插入模式,然后输入wq保存退出。操作示例命令背后的运行过程其实就是使用scp命令将远程文件复制到本地系统的/tmp目录下,然后打开文件进行编辑。完成编辑后,scp命令再次将本地编辑的文件复制回远程系统。要检查远程文件的内容是否已在本地更改,请使用此命令:$sshcirdan@192.168.225.22catinfo.txt请注意,如果要使用远程终端目录的绝对路径,则应使用双斜杠,如如下所示的命令Bar:$vimscp://cirdan@192.168.225.22//home/cirdan/Documents/info.txt如果出于安全原因更改了SSH端口,则应明确说明SSH端口号,如下所示:$vimscp://cirdan@192.168.225.22:2200/info.txt这里的2200端口是我们自定义的端口号,大家可以根据具体情况使用自己的ssh端口号替换上面命令中的2200。如果你没有ssh/scp通道,你可以使用其他协议代替,如下所示:$vimftp://user@remotesystem/path/to/file在Vim会话中读写远程文件如果你输入了一个在Vim会话中,可以使用Nread(NetRead)和Nwrite(NetWrite)命令读写远程文件。假设,我们现在使用以下命令打开本地系统的Vim编辑器:$vim那么你已经进入了Vim会话,要在新的本地缓存中读取Vim会话中的远程文件,只需运行以下命令:escp://cirdan@192.168.225.22/info.txt另外,还可以使用如下的Nread命令::Nreadscp://cirdan@192.168.225.22/info.txt或者,这样输入::Nread"scp://cirdan@192.168.225.22/info.txt”操作示例要了解该命令的详细信息,请在Vim会话中输入以下命令::Nread?阅读描述文件后,输入:q退出文件。同理,写入远程文件应使用如下命令:escp://cirdan@192.168.225.22/info.txt按i进入插入模式写入修改文件。也可以用:w来创建和写入文件,但是这个命令只是新建一个空文件::wscp://cirdan@192.168.225.22/info.txt写入完成后按ESC键退出编辑,然后输入:wq保存并退出文件。此外,还可以使用Nwrite命令来创建和写入文件。使用示例如下:Nwritescp://cirdan@192.168.225.22/info.txt关于Nwrite命令的详细信息,在Vim会话中输入以下信息:是::Nwrite?我希望这篇文章对你有所帮助。本文经授权转载自公众号“良墟Linux”。世界500强外企Linux开发工程师梁旭,在公众号分享大量Linux干货,欢迎关注!
