参考源

https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0

版本

本文章基于 CentOS 7.6


概述

Vi

Vi 是 Unix 及 Linux 系统下标准的编辑器,老一点的 Linux 用户应该对其都不陌生,它的强大不逊色于任何最新的文本编辑器。

所有的类 Unix 系统都会内建 Vi 文书编辑器,其他的文书编辑器则不一定会存在。

Vim

Vim 是对 Vi 的升级,在已经非常强大的 Vi 的基础上,增加了代码补完颜色区分编译错误跳转等方便编程的功能。

更厉害的是,Vim 搭配插件甚至能作为 IDE 使用,可见其功能之强大,也因此在程序员中特别受欢迎,被广泛使用。

键盘图

Vi / Vim 有非常多的快捷键位操作,能够极大的提高文本编辑效率,以下是其键盘图,供参考使用。

使用

Vim 共有 3 种模式:

  • 命令模式(Command mode)
  • 输入模式(Insert mode)
  • 底线命令模式(Last line mode)

Vim 启动时,默认进入命令模式。此时键盘输入会被 Vim 识别为命令。比如此时按下 i,并不会输入字符 i,而是被当作切换到输入模式的命令。

类似常用的命令如下:

  • i:切换到输入模式,此时输入会被作为字符输入,可以自由输入,也可以粘贴,按下 Esc 可退出输入模式切换到命令模式
  • x:删除光标选中的字符,此时虽然没有切换到输入模式,但文本内容已经被改变了,常用作快捷删除。
  • ::切换到底线命令模式,此时最下面的行会显示 :,供用户在后面输入命令,常输入 wq 进行保存并退出(若输入 wq! 即为强制保存并退出)。

3 种模式的关系可以用下图表示:

示例

使用 Vim 来建立一个名为 sail.txt 的文件

1、初始状态。

[root@sail home]# vim sail.txt

2、按下 ioa 进入输入模式,开始编辑。

此时可以发现在左下角状态栏中会出现 –INSERT- 的字样,这就是输入模式的标志。这个时候,除了 Esc 外,其他的按键都视为输入,可以自由编辑。

3、如果已经编辑完毕,接下来就是退出 Vim 了。

4、按下 ESC 按钮,会发现画面左下角的 – INSERT – 不见了,代表又回到了命令模式

5、按下 :,会发现底部变为了 : ,代表切换到了底线命令模式

6、在 : 后输入 wq 命令即表示保存并退出 Vim

这样就完成了文件的新建或编辑。

7、此时再输入 vim sail.txt 即可查看文本内容。

如果需要继续编辑,按下 i 切换到输入模式即可。

Linux 09 Vim的更多相关文章

  1. Linux vi/vim(转载)

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  2. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  3. Linux下vim文件未正常退出,修复文件

    Linux下vim文件未正常退出,会产生一个 .文件名.swp的文件 ls -al  ,rm   删掉.swp文件 之后就可以正常使用文件了

  4. Linux的vim编辑器中的翻页命令

    当我们进入Linux的vim编辑器查看脚本时,按上下键查看是不是非常慢?这个时候就要用到我们的翻页快捷键了,快捷键命令如: 整页翻页命令为:Ctrl + f 键   f 的英文全拼为:forward: ...

  5. linux之vim配置及使用示例

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7056193.html linux之vim配置及使用示例 vi的三种模式: 一 ...

  6. Linux之Vim学习

    Linux之Vim学习 一般模式 光标移动 按键 作用 j或down方向键 向下移动一个字符 k或up方向键 向上移动一个字符 h或left方向键 向左移动一个字符 l或right方向键 向右移动一个 ...

  7. Linux使用vim进行多文件查找和替换的方法

    vim是Linux系统下常用的文本编辑,通过使用多种shell命令能够实现多文件的查找和替换,那么具体会使用到那些命令呢?下面小编就给大家介绍下Linux系统vim多文件查找和替换的方法. 在linu ...

  8. 【Linux】Linux中VIM编辑器的使用

    vim编辑器是我们在Linux中不可或缺的一部分,我们通常会使用它去自定义编辑文本已达到我们的需求,那么vim文本编辑器具体要怎么使用呢.今天跟大家分享一下vim编辑器的使用: vim编辑器模式介绍 ...

  9. linux 下vim文件乱码 cat文件正常处理方法

    linux 下vim文件乱码 cat文件正常处理方法 服务器支持中文字符集,cat和其他查看文件命令现在正常,vim还是出现了中文乱码问题, 1.查看文件编码格式 vim 文件 :set fileen ...

随机推荐

  1. SeataAT模式原理

    Seata架构 Seata将分布式事务理解为一个全局事务,它由若干个分支事务组成,一个分支事务就是一个满足ACID的本地事务. Seata架构中有三个角色: TC (Transaction Coord ...

  2. poj3784(对顶堆)

    题意:多组数据,让你求出1~i(i为奇数&&i<=n)的中位数 思路:首先复杂度必为O(n)或O(nlogn)的(数据范围) 思索,如果题目要求1次中位数,好求!排个序,取a[( ...

  3. FlinkSQL源码阅读-schema管理

    在Flink SQL中, 元数据的管理分为三层: catalog-> database-> table, 我们知道Flink SQL是依托calcite框架来进行SQL执行树生产,校验,优 ...

  4. Docker容器固定ip

    Docker容器固定IP 必须停止docker服务才能创建网桥 查看docker服务状态 停止docker服务 启动docker服务 [root@docker Tools]# systemctl st ...

  5. 26.MySQL数据库基础

    MySQL数据库基础 目录 MySQL数据库基础 数据库的概念 数据 表 数据库 数据库的管理系(DBMS) 数据库系统 访问数据库的流程 数据库系统发展史 当今主流数据库介绍 关系数据库 关系数据库 ...

  6. distroless 镜像介绍及 基于cbl-mariner的.NET distroless 镜像的容器

    1.概述 容器改变了我们看待技术基础设施的方式.这是我们运行应用程序方式的一次巨大飞跃.容器编排和云服务一起为我们提供了一种近乎无限规模的无缝扩展能力. 根据定义,容器应该包含 应用程序 及其 运行时 ...

  7. Array 数组filter()方法,遍历数组返回符合条件的一个新数组

    <script> const arr = [ { id: 1, name: "aa", isDone: false }, { id: 2, name: "bb ...

  8. Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程

    前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet ...

  9. 《Ranked List Loss for Deep Metric Learning》CVPR 2019

    Motivation: 深度度量学习的目标是学习一个嵌入空间来从数据点中捕捉语义信息.现有的成对或者三元组方法随着模型迭代过程会出现大量的平凡组导致收敛缓慢.针对这个问题,一些基于排序结构的损失取得了 ...

  10. Pytorch从0开始实现YOLO V3指南 part2——搭建网络结构层

    本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch ...