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

大家好,我是良许。

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

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

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

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

(0)

相关推荐

  • Linux (Ubuntu 18.04) 下安装vim编辑器的方法

    大家可以去Ubuntu官网下载桌面系统: https://ubuntu.com/download/desktop ,虽然最新版是19.04,但是建议大家下载稳定版18.04.安装过程非常简洁,我使用的是VMware Workstation Pro虚拟机,大家也可以用其他的,这个没什么影响. Ubuntu 18.04 用起来还是要比老版本要舒服很多的,毕竟做了这么久的Windows开发,突然接触linux,还是有点不习惯,但是新版的Ubuntu的一些操作习惯已经很接近Windows了,毕竟科技的发

  • Linux使用vim编辑文件保存时报E514:write error (file system full?)问题解决

    发现问题 今天在Linux上使用vim编辑文件保存时报如下错误: E514: write error (file system full?) 从错误看,是磁盘满了,于是使用df -hl查看磁盘使用情况 $ sudo df -hl Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_myserver-lv_root 50G 43G 4.6G 91% / tmpfs 7.8G 268K 7.8G 1% /dev/shm /dev/sda

  • Linux上通过SSH挂载远程文件系统方法详解

    SSHFS的特点: 基于FUSE(Linux的最佳用户空间文件系统框架) 多线程:在服务器上可以有多个请求 允许大读取(最大64k) 缓存目录内容 步骤1:安装fuse-sshfs 对于centos/rhel用户,fuse sshfs在epel repository下可用,因此请确保在系统中安装了epel repository.现在执行以下命令安装它 在CENTOS/RHELL上: #yum install fuse-sshfs 在Ubuntu和Dabian上: $ sudo apt-get u

  • Linux中scp命令获取远程文件的方法

    一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度. 二.scp有什么用? 1.我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的: 2.我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无

  • 在Linux中使用Vundle管理Vim插件的方法

    前言 毋庸置疑,Vim 是一款强大的文本文件处理的通用工具,能够管理系统配置文件和编写代码.通过插件,Vim 可以被拓展出不同层次的功能.通常,所有的插件和附属的配置文件都会存放在 ~/.vim 目录中.由于所有的插件文件都被存储在同一个目录下,所以当你安装更多插件时,不同的插件文件之间相互混淆.因而,跟踪和管理它们将是一个恐怖的任务.然而,这正是 Vundle 所能处理的.Vundle,分别是 Vim 和 Bundle 的缩写,它是一款能够管理 Vim 插件的极其实用的工具. Vundle 为

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

    大家好,我是良许. 今天我们讨论一个 Vim 使用技巧--用 Vim 读写远程文件.要实现这个目的,我们需要使用到一个叫 netrw.vim 的插件.从 Vim 7.x 开始,netrw.vim 就被设置为默认安装的标准插件了.这个插件允许用户通过 ftp.rcp.scp.http 等协议读写.编辑和浏览远程文件. 设定vim的工作方式(临时) :set (模式信息) :set nu - 显示行号 :set nonu - 取消行号 :set mouse=a - 设定鼠标可用 :set curso

  • Linux监控cpu以及内存使用情况之top命令(详解)

    top命令是Linux下常用的性能分析工具,比如cpu.内存的使用,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序:而且该命令的很多特性都可以通

  • Python读写JSON文件的操作详解

    目录 JSON JSON 起源 JSON 样例 Python 原生支持 JSON 序列化 JSON 简单的序列化示例 JSON 反序列化 简单的反序列化示例 应用案例 编码和解码 JSON JSON 起源 JSON 全称 JavaScript Object Notation .是处理对象文字语法的 JavaScript 编程语言的一个子集.JSON 早已成为与语言无关的语言,并作为自己的标准存在. JSON 样例 { "data":[ { "id": "1

  • C#实现读写CSV文件的方法详解

    目录 CSV文件标准 文件示例 RFC 4180 简化标准 读写CSV文件 使用CsvHelper 使用自定义方法 总结 项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件的解析.本文会介绍CsvHelper.TextFieldParser.正则表达式三种解析CSV文件的方法,顺带也会介绍一下CSV文件的写方法. CSV文件标准 在介绍CSV文件的读写方法前,我们需要了解一下CSV文件的格式. 文件示例 一个简单的CSV文件: Test1,Test2,Test3,Test4,Test

  • linux中rz上传、sz下载命令详解

    rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 使用前提: 首先,你的Linux端(CentOS, Ubuntu)需要安装rz/sz命令,也就是 lszrz 包. 其次,windows端需要支持ZModem的telnet/ssh客户端(Xshell,SecureCRT支持,好像putty不支持),SecureCRT就可以用SecureCRT登陆到Unix/Linux主机(telnet或ssh均可) 运行命令rz,即是接收文件,xshell就会弹出文件选

  • Shell中建立与使用临时性文件的方法详解

    前言 在我们日常开发中经常会需要用到临时文件,本文就给大家介绍了关于Shell建立与使用临时性文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 虽然使用管道可以省去建立临时性文件的需求,不过有时候临时性文件还是派的上用场的.UNIX不同于其他操作系统的地方就是:它没有那种将不再需要的文件设法神奇删除的想法.反倒提供了两个特殊目录:/tmp和/var/tmp(旧系统为:/usr/tmp),这些文件可正常被存储,当它们未被清理干净时也不会弄乱一般的目录.大部分系统上的/tm

  • PHP中如何使用Redis接管文件存储Session详解

    前言 php默认使用文件存储session,如果并发量大,效率会非常低.而redis对高并发的支持非常好,可以利用redis替换文件来存储session. 最近就遇到了这个问题,之前找了网上的一套直播系统给客户用,刚开始是没问题的,在后面人数上来之后网站开始变得卡顿,卡的一批.之后查看php慢日志发现session_start()的身影,好吧,原来是万恶的文件存储session,跟我之前进的坑一模一样--之前做的教务查询系统直接用的session没有用cookie,结果在高并发的情况下php原地

  • Qt读写ini文件的方法详解(含源码+注释)

    目录 一.示例Ini文件内容 二.Ini文件的写入 三.Ini文件的读取 3.1 第一种读取方式 3.2 第二种读取方式 3.3 读取结果示例 补充:获取所有节点和key以及节点的遍历 相关文章 总结 一.示例Ini文件内容 下方为本文所使用的ini文件的内容 [group1] key1=val1 key2=val2 sameKay=sameVal [group2] jian1=zhi1 jian2=zhi2 sameKay=sameZhi 二.Ini文件的写入 ini文件不需要像xml和jso

  • jdk中密钥和证书管理工具keytool常用命令详解

    -genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥.私钥和证书 -alias       产生别名-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中-keyalg      指定密钥的算法    -validity    指定创建的证书有效期多少天-keysize     指定密钥长度-storepass   指定密钥库的密码-keypass     指定别名条目

  • 使用C/C++读写.mat文件的方法详解

    目录 一.创建工程并添加测试代码 二.修改CmakeLists文件 三.添加环境变量 四.令人头秃的错误 五.运行结果 总结 最近需要使用C++来处理matlab生成的数据, 参考了网上一些博客,不过他们都是使用的VS,我比较喜欢使用Clion, 在配置的过程中也遇到了一些坑,记录一下. 一.创建工程并添加测试代码 创建工程就不说了,注意一下我使用的编译工具链是MinGW.测试代码参考的matlab官方的程序:读取用 C/C++ 编写的 MAT 文件 - MATLAB & Simulink -

随机推荐