Vim技巧–在Linux上使用Vim读写远程文件
前一段时间,我们讨论了如何在Linux上使用Vim编辑器编辑远程文件。
使用该方法,我们无需通过登录即可通过SSH编辑存储在远程系统上的文件。
今天,我们将讨论类似的Vim技巧,即如何使用Vim读写远程文件。
从Vim 7.x版本开始,默认情况下将netrw.vim插件安装为标准插件。
该插件允许用户通过ftp,rcp,scp或者http读取,编辑,写入和浏览远程文件。
什么是Netrw插件?
对于那些想知道的人,Netrw(面向网络的读取,写入和浏览)插件支持跨网络的本地和远程编辑,读取和写入文件。
它还支持浏览本地和远程目录。
有关更多详细信息,请在vim会话中键入:help netrw。
让我们继续来看一下如何使用Vim从本地系统读取或者写入存储在远程Linux系统中的文件。
在Linux上使用Vim读写远程文件
读取和写入远程文件与编辑远程文件几乎相同。
要从本地系统读取远程文件,我们只需使用以下命令将其打开:
$vim scp://Hyman@theitroad/info.txt
键入q退出文件。
要写入远程文件,只需如上图所示打开它,然后按“ i”进入插入模式,最后开始写入即可。
完成后,按ESC键并输入:wq保存并退出。
在后台实际发生的是使用scp命令将远程文件复制到本地系统的“/tmp”目录中。
然后打开文件进行编辑。
完成后,scp命令将文件复制回远程系统。
从本地系统查看远程文件的内容,以验证是否已使用以下命令对文件进行了真正的修改:
$ssh Hyman@theitroad cat info.txt
请注意,如果要提及远程主机上目录的绝对路径,请使用双斜杠(//),如以下命令所示:
$vim scp://Hyman@theitroad//home/sk/Documents/info.txt
万一出于安全目的已经更改了默认SSH端口,则应明确提及SSH端口,如下所示。
$vim scp://Hyman@theitroad:2200/info.txt
将2200替换为SSH端口号。
如果没有ssh/scp访问权限,则可以使用其他协议,例如ftp,如下所示。
$vim ftp://Hyman@theitroad/path/to/file
在Vim会话中读写远程文件
如果我们已经在Vim会话中,则可以使用Nread(NetRead)和Nwrite(NetWrite)命令读取和写入远程文件。
使用以下命令在本地系统中打开Vim编辑器:
$vim
我们现在在Vim会话中。
要在新缓冲区中从本地Vim会话中读取远程文件,只需运行:
:e scp://Hyman@theitroad/info.txt
另外,我们可以使用“ Nread”命令,如下所示。
:Nread scp://Hyman@theitroad/info.txt
或者,
:Nread "scp://Hyman@theitroad/info.txt"
有关更多详细信息,请在Vim会话中键入以下命令:
:Nread ?
读取文件后,键入:q退出。
同样,要写入远程文件,请运行:
:e scp://Hyman@theitroad/info.txt
按“ i”进入插入模式并开始写入/修改。
我们也可以使用:w命令来创建和写入文件。
但是此命令将仅创建新的空文件。
:w scp://Hyman@theitroad/info.txt
写入后,按ESC并键入:wq保存并退出。
或者,使用“ Nwrite”命令创建文件,如下所示。
:Nwrite scp://Hyman@theitroad/info.txt
要了解有关Nwrite的更多详细信息,请在Vim会话中键入以下内容:
:Nwrite ?