通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器。

我们首选的文本编辑器是 Vim(至于为什么,可查看《Vi和Vim的区别和联系》一节)。使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换,如图 1 所示。


图 1 Vim 的三种工作模式

Vim的命令模式

使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

图 2 所示是在 CentOS 6.x 系统中 Vim 处于命令模式的状态示意图。


图 2 Vim 处于命令状态

Vim的输入模式

在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。

使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

表 3 各插入命令的具体功能
快捷键 功能描述
i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行a命令
 

图 4 所示即为 Vim 处于输入模式状态下的示意图。


图 4 Vim 处于输入模式

Vim 的编辑模式

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。

使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

指令执行后 Vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可。

图 4 所示为 Vim 进入编辑模式后的状态。


图 4 Vim 进行编辑模式

对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 Esc 键返回命令模式。如果你多按几次 Esc 键后听到"嘀————"的声音,则代表你已经处于命令模式了。

Vim文本编辑器
5.1 Vim及其安装
5.2 Vi和Vim的区别和联系
5.3 Linux Vim三种工作模式
5.4 Linux Vim基本操作
5.5 Vim移动光标命令汇总
5.6 Linux Vim多窗口编辑
5.7 Linux Vim批量注释和自定义注释
5.8 Linux Vim显示行号
5.9 Vim配置(.vimrc)

Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解相关推荐

  1. leetcode84- 柱状图中最大的矩形(三种思路:暴力,单调栈+哨兵(详解),分治)

    leetcode84- 柱状图中最大的矩形(三种思路:暴力,单调栈+哨兵(详解),分治) 介绍 题目 解题思路 解法一:暴力向两边搜索 解法二:单调栈 画图演示 宽度计算: 解法三:单调栈+哨兵 解法 ...

  2. vim三种工作模式 命令模式、编辑模式、末行(底行)模式

    命令模式: 进入vim的默认模式,可以浏览文件,通过移动光标进行一些操作 1.光标移动到行首 按键:shift+6 ("^"符号)  光标移动到行尾 按键:shift+4(&quo ...

  3. 【linux】Linux查看服务器登陆用户信息命令(w、last、who)详解

    目  录 1 背       景 2 命令详解 2.1 w命令 2.1.1 参数说明 2.1.2 实例 2.1.3 显示字段说明 2.2 last命令 2.2.1 参数说明 2.2.2 实例 2.3 ...

  4. python下载url_三种Python下载url并保存文件的代码详解

    利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外 ...

  5. 【视觉注意力机制】SE、CBAM、ECA三种可插拔注意力模块结构实现与详解

    SE.CBAM 以及 ECA 三种注意力机制的结构实现与代码详解如下所示. 代码可参考:https://github.com/XuecWu/External-Attention-pytorch imp ...

  6. springboot整合elasticJob实战(纯代码开发三种任务类型用法)以及分片系统,事件追踪详解...

    一 springboot整合 介绍就不多说了,只有这个框架是当当网开源的,支持分布式调度,分布式系统中非常合适(两个服务同时跑不会重复,并且可灵活配置分开分批处理数据,贼方便)! 这里主要还是用到zo ...

  7. linux文件编辑器的三种模式,Linux中文本编辑器三种工作模式切换及vi编辑器三种工作模式下命令详解...

    文本编辑器的作用 创建或修改文本文件 维护Linux系统中的各种配置文件 Linux中最常用的文本编辑器 Linux中最常用的文本编辑器 vi:类UNIX操作系统的默认文本编辑器 vim:vim时vi ...

  8. linux vi/vim三种模式,保存退出,强制退出

    一.三种模式 vi/vim工具 共分为三种模式,分别是: 1.命令模式(Command mode), 2.输入模式(Insert mode) 3.底线命令模式(Last line mode). 命令模 ...

  9. Squid三种工作模式搭建及配置文件解析

    目录 一.Squid软件及配置文件简介 1.Squid软件 2.Squid配置文件详解 二.Squid三种工作方式搭建 传统模式搭建流程: 1.按照网络拓扑图搭建网络环境: 2.web服务器端安装Ap ...

最新文章

  1. Linux笔记1- 6 --文件
  2. OAF[1]开发环境的配置
  3. fps 每秒刷新的频率
  4. Git的分支命令详解
  5. C++ Primer 5th笔记(10)chapter10 泛型算法 :lambda
  6. pdf保存如何带批注_带有批注的SpringSelenium测试
  7. 各个层次的gcc警告
  8. 《恋上数据结构第1季》二叉堆实现优先级队列
  9. bzoj 1303: [CQOI2009]中位数图
  10. 关于快速幂与快速积取模实现的尝试
  11. android压缩gif大小,使用手机制作GIF动图,免费无水印、大小可调,安卓、iphone都可以...
  12. HDU 4512 吉哥系列故事——完美队形I(最长公共上升子序列 LCIS)
  13. 走进小作坊(九)----省时省力的二八法则
  14. 使用Vue+Element-UI从0搭建一个常见的前端模板
  15. 查找一个字符串中的所有子串的位置
  16. .NET Framework各个版本(3.0 - 3.5)
  17. ubuntu 14.04 32位设置1920x1080分辨率
  18. teredo实现ipv4公网环境下接入ipv6
  19. [react] Target container is not a DOM element
  20. python中的argv和argc

热门文章

  1. python turtle画五边形_python画一朵玫瑰给你
  2. 虚函数和虚表指针的例子
  3. Docker创建自己的镜像库
  4. linux内核那些事之buddy
  5. linux 下后台运行python脚本
  6. 一副眼镜一千多贵吗_成都配眼镜去哪里好一点?怎样配眼镜才不被坑
  7. 苹果系统怎么降低版本_海信电视系统版本太低怎么升级?
  8. 一款打包免签分发平台源码+搭建说明
  9. fir.im同款企业级APP分发平台系统源码
  10. 《深入理解计算机系统》(2) 信息的表示和处理