专栏首页恩蓝脚本在Linux系统中使用Vim读写远程文件的命令详解

在Linux系统中使用Vim读写远程文件的命令详解

设定vim的工作方式(临时)

 :set (模式信息)  :set nu — 显示行号  :set nonu — 取消行号  :set mouse=a — 设定鼠标可用  :set cursorline — 设定显示行线  :help — 查看帮助

今天我们讨论一个 Vim 使用技巧——用 Vim 读写远程文件。要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件。从 Vim 7.x 开始,netrw.vim 就被设置为默认安装的标准插件了。这个插件允许用户通过 ftp、rcp、scp、http 等协议读写、编辑和浏览远程文件。

插件 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使用vim读写远程文件内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解Gradle依赖冲突解决方式

    在Android开发中,相信遇到关于版本依赖的问题的同学有不少。虽然Android Studio一般都会自动帮我们去重,但是有时候去重失败了还是需要手动处理。在...

    砸漏
  • PHP项目多语言配置平台实现过程

    这个月用ant design的方式重构了我在15年的时候写的一个给主端项目写的多语言配置后台。发现当时的设计很“深”,深到有些功能根本就没用过,根据这几年的使用...

    砸漏
  • Linux内核设备驱动之内核的调试技术笔记整理

    内核的配置选项中包含了一些与内核调试相关的选项,都集中在”kernel hacking”菜单中。包括:

    砸漏
  • Hadoop基础教程-第10章 HBase:Hadoop数据库(10.5 HBase Shell)(草稿)

    第10章 HBase:Hadoop数据库 10.5 HBase Shell 10.5.1 官方快速入门教程 http://hbase.apache.org/bo...

    程裕强
  • 攻防对抗中,企业如何像黑客一样思考

    安全是一个博弈对抗的过程,网络安全的本质是攻防对抗。攻击者会不断寻找防护方的弱点,防护方也需要不断研究黑客思维,探索应对黑客攻击的方法,提升安全防护的能力和效率...

    FB客服
  • Android应用图标微技巧,8.0系统中应用图标的适配

    版权声明:本文出自郭霖的博客,转载必须注明出处。 ...

    用户1158055
  • Linux常用命令之ls、pwd与cd

    简介Linux常用命令ls、pwd与cd,分享自己的学习经验。新手上路,第一次写自己的博客,有什么不对的地方请大神们多多指教。

    RambleHQ
  • 原来Gmail中使用了ActiveX,那么如何保证linux用户的访问行呢?

    Gmail requires ActiveX controls to be enabled

    田春峰-JCJC错别字检测
  • 听说2017你想写前端?

    作者:Jay(沪江开发工程师) 本文为原创文章,转载请注明作者及出处 不好意思,没有像其他公众号一样赶着发文章,每年到这个时候总有一大波什么今年前端预测,技...

    iKcamp
  • 使用 kill 命令杀死 java进程,你用对了吗?

    有一次发现代码中添加的 ShutdownHook没有生效,难道和 kill命令后面的数字有关?

    乔戈里

扫码关注云+社区

领取腾讯云代金券