这篇文章我们将说到Linux系统Vim的使用——读写远程文件。在实现这个功能之前,我们要先安装一个叫 netrw.vim
的插件。
插件 netrw 是什么?
netrw
(面向网络的读写和浏览 Network oriented reading, writing and browsing)插件不仅支持本地和远程终端跨网络编辑、读写文件,还能支持浏览本地和远程终端目录。需要了解这个插件的更多细节信息,在Vim
会话输入 help netrw
即可查看。
下面让我们来看看怎么用 Vim
从本地系统读写存储在远程 Linux
系统上的文件。
使用 Linux 系统上的 Vim 读写远程文件
读写远程文件的方法几乎和编辑远程文件一样,需要从本地系统读取一个远程文件,我们可以简单的使用下面这个命令来打开它:
$ vim scp://cirdan@192.168.225.22/info.txt
输入 q
退出文件。
要从本地系统写一个远程文件,也是先用上述命令打开文件,之后再按 i
进入插入模式接着就可以往文件里写入了。等写完需要写入文件的内容之后,按 ESC
键退出插入模式,然后输入 wq
保存并退出。
命令背后的运行过程实际上是用 scp
命令将远程文件拷贝到本地系统的 /tmp
目录下,然后再打开文件编辑的。在你编辑完后,scp
命令再次将本地已编辑文件拷贝回远程系统。
要从本地查看远程文件内容是否真的改动过用这一条命令:
$ ssh cirdan@192.168.225.22 cat info.txt
请注意,如果你要用远程终端目录的绝对路径,应像如下所示命令一样使用双斜杠:
$ vim scp://cirdan@192.168.225.22//home/cirdan/Documents/info.txt
如果你已经因为安全原因改变了SSH
端口,则应当显式地说明SSH
端口号,如下所示:
$ vim scp://cirdan@192.168.225.22:2200/info.txt
这里端口 2200 就是我们自定义的端口号,大家可以根据具体情况使用自己的 ssh
端口号替代上述命令中的2200。
如果你没有 ssh/scp
的通道,也可以用其他协议来替代,如下所示:
$ vim ftp://user@remotesystem/path/to/file
在Vim会话里读写远程文件
如果你已经进入了一个 Vim
会话,则可以使用 Nread
(NetRead)和 Nwrite
(NetWrite)命令来读写远程文件。
假如,我们现在使用如下命令打开本地系统的Vim
编辑器:
$ vim
接着你就进入了 Vim
会话,要在本地新缓存中的 Vim
会话中读一个远程文件,只需要运行如下命令:
:e scp://cirdan@192.168.225.22/info.txt
除此之外,还可以用 Nread
命令如下所示:
:Nread scp://cirdan@192.168.225.22/info.txt
或者,这样输入:
:Nread "scp://cirdan@192.168.225.22/info.txt"
想要知道这个命令的详细信息,请在 Vim
会话中输入如下命令:
:Nread ?
读完说明文件后,输入 :q
退出文件即可。
与之相似,要写入远程文件也应先使用如下命令:
:e scp://cirdan@192.168.225.22/info.txt
按 i
键进入插入模式就可以写入和修改文件了。
你也可以用 :w
创建并写文件,但是这个命令只能创建一个新的空文件:
:w scp://cirdan@192.168.225.22/info.txt
写完之后,按 ESC
键退出编辑,然后输入:wq
保存并退出文件。
除此之外,还可以用 Nwrite
命令创建并写入文件,其用法示例如下:
:Nwrite scp://cirdan@192.168.225.22/info.txt
关于 Nwrite
命令的详细信息,在Vim
会话中输入如下信息即可:
:Nwrite ?
以上就是Linux
系统中Vim
的使用技巧了,希望对大家有所帮助,对Linux
感兴趣的同学可以看一下教程
Linux教程:https://www.zijiebao.com/linux/
Linux微课:https://www.zijiebao.com/minicourse/play/linuxcourse
Linux就该这么学:https://www.zijiebao.com/linuxprobe/