【Linux】初识优雅的Linux编辑器——Vim

news2024/10/5 12:39:24

❤️前言

        大家好!今天给大家带来的博客内容是关于Linux操作系统下的一款多模式文本编辑器Vim。本文将和大家一起来了解Vim编辑器的一些基础知识。

正文

        Vim是一个多模式的文本编辑器(一共有十二种模式),其中我们当我们初学Vim时主要了解如下三种工作模式:命令模式(默认模式)、插入模式、底行模式

        其它的模式可以通过在底行模式下输入 help vim-modes 进行查看。

命令模式(普通模式)

        当我们刚启动Vim编辑器对一个文件进行操作时,首先见到的就是Vim的命令模式,在这个模式下,我们所有的键盘输入都会被当作命令,一般不会进行文本的输入,我们在命令模式中通过一系列的命令进行一些复制、粘贴、删除等操作。

        在传统的Vim使用方法中,我们一般不会使用鼠标进行光标的移动和对文本的选中,这点和我们通常使用的Windows操作系统中的编辑器大不一样。现在我们刚开始学习Vim编辑器的使用,我觉得我们可以试着入乡随俗,只使用键盘进行对应的操作。

        这里是详细的Vim键盘图,包含了命令模式下的各种命令:

插入模式

        如果我们在Vim编辑器中想要对文件进行文本编辑,这时我们就需要从默认的命令模式通过某些键盘命令进入插入模式。在插入模式下,Vim编译器就像一个简单的记事本一样,可以跟我们平常在Windows系统下的文本编辑进行一样的操作,直接使用键盘进行文本的写入。在文本编辑过程中,我们可以使用上下左右方向键对光标进行移动(对,咱还是试着使用键盘而不是鼠标哈哈哈)。

        在命令模式下共有这些指令可以让我们进入插入模式:

        然后你就可以在这个文件中写入你想要的内容,把它变成你想要的形状了(bushi)。然后当我们对文件内容的操作完成了之后,如果我们想要退出Vim,我们该怎么做呢?

底行模式

        当我们在插入模式中想要退出Vim编辑器,这显然是不太现实的,毕竟在插入模式下,我们输入字符一般被识别为文本编辑。这时我们就需要先退出底行模式,然后再想方法退出Vim编辑器。

        那么我们如何退出插入模式呢?这时我们可以直接无脑按Esc键退出模式。在Vim中,如果我们要进行模式的转变往往需要先进入命令模式,(当然,如果已经在命令模式下,这个操作就不需要了)那么这时候我们就可以选择无脑地按Esc键退出该模式,进入命令模式。

        进入命令模式后,我们接着输入字符 ' : ' 进入底行模式。在底行模式中,我们有如下指令:

  • w 保存不退出
  • w 新文件名 把文件另存为新文件
  • q 不保存退出
  • wq 保存退出
  • ! 强制
  • q! 强制不保存退出,用于修改文件之后,不保存数据退出
  • wq! 强制保存退出,当文件的所有者或 root 用户对文件没有写权限的时候,强制写入数据使用。

        这时我们如果作为文件的所有者,一般就直接在底行模式下输入 wq 保存并退出Vim编译器。

🍀结语

        本文关于Vim编辑器的分享就到此为止啦,Vim编辑器与其他的编辑器不太相同的地方就是它具有一定的学习成本,我们在使用的过程中需要慢慢地熟悉它的使用方法。当然,对于我身为一个Linux的初学者来说,我希望自己能够不厌其烦地学习一些新东西。最后,祝大家心情愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——多线程(线程概念|进程与线程|线程控制)

目录 地址空间和页表 如何看待地址空间和页表 虚拟地址如何转化到物理地址的 线程与进程的关系 什么叫进程? 什么叫线程? 如何看待我们之前学习进程时,对应的进程概念呢?和今天的冲突吗? windows线程与linux线…

Leetcode665. 非递减数列

Every day a Leetcode 题目来源:665. 非递减数列 解法1:贪心 本题是要维持一个非递减的数列,所以遇到递减的情况时(nums[i] > nums[i 1]),要么将前面的元素缩小,要么将后面的元素放大。 …

K8s in Action 阅读笔记——【2】First steps with Docker and Kubernetes

K8s in Action 阅读笔记——【2】First steps with Docker and Kubernetes 2.1 Creating, running, and sharing a container image 2.1.1 Installing Docker and running a Hello World container 在电脑上安装好Docker环境后,执行如下命令, $ dock…

真会玩:莫言用ChatGPT为余华写了一篇获奖词

5月16日,《收获》杂志65周年庆典暨新书发布活动在上海舞蹈中心举行。 典礼现场,余华凭借《文城》获得收获文学榜2021年长篇小说榜榜首。 作为老友,莫言在颁奖时故意卖了个关子:“这次获奖的是一个了不起的人物,当然了&…

OMA通道-2

1 简介 本文档中指定的 API 使移动应用程序能够访问移动设备中的不同 SE,例如 SIM 或嵌入式 SE。 本规范提供了接口定义和 UML 图,以允许在各种移动平台和不同的编程语言中实现。 如果编程语言支持命名空间,则它应为 org.simalliance.openmob…

Foxit PDF SDK OCR Add-on Library (C++, Windows)-Crk

OCR文档扫描--Crack version 使用Foxit PDF SDK OCR Add-on的光学字符识别(OCR)软件将扫描的文档转换为可搜索的文本PDF。专为扫描、归档和数字化而设计,我们的插件输出13种不同的文件格式,包括PDF和PDF/A。 在不投资数据输入人员…

Linux 禁用23端口

禁用23端口 前言 23端口是用于Telnet服务的默认端口。Telnet是一种早期的网络协议,允许用户使用一个远程终端连接到远程计算机上,以便在远程计算机上执行命令和操作。通过输入用于Telnet服务器的IP地址和端口号,用户可以在本地计算机上打开一…

【Java|golang】1090. 受标签影响的最大值---关联数组排序问题以及切片排序失败

我们有一个 n 项的集合。给出两个整数数组 values 和 labels ,第 i 个元素的值和标签分别是 values[i] 和 labels[i]。还会给出两个整数 numWanted 和 useLimit 。 从 n 个元素中选择一个子集 s : 子集 s 的大小 小于或等于 numWanted 。 s 中 最多 有相同标签的 …

数据结构初阶--栈和队列OJ题

目录 前言有效的括号思路分析代码实现 用队列实现栈思路分析代码实现 用栈实现队列思路分析代码实现 设计循环队列思路分析代码实现 前言 本篇文章将对部分栈和队列综合运用题进行讲解,以对栈和队列有一个更深层次的理解。 有效的括号 先来看题 思路分析 这里…

优秀的流程图应该怎么设计呢?

优秀的流程图应该怎么绘制呢? 本文将带大家学习优秀流程图的绘制要点和技巧,以及讲解流程图与UML活动图、BPMN图之间的关系和区别。 1、认识流程图 流程图简单讲就是用图描述流程,这种流程可以是一种有先后顺序的操作组成,可以…

2024王道数据结构考研丨第六篇:查找、排序

到此,2024王道数据结构考研笔记专栏“基础知识”部分已更新完毕,其他内容持续更新中,欢迎 点此 订阅,共同交流学习… 文章目录 第七章 查找7.1查找表相关概念 第八章 排序8.1排序的基本概念8.2 插入排序8.2.1直接插入排序8.2.2折半…

使用Maven管理项目、导入依赖、测试打包项目、常用依赖

使用Maven管理项目 文章目录 使用Maven管理项目Maven项目结构Maven依赖导入Maven依赖作用域Maven可选依赖Maven排除依赖Maven继承关系Maven常用命令Maven测试项目Maven打包项目 Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。…

hive函数03

自定义函数 Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。 在企业中处理数据的时候,对于敏感数据往往需要进行脱敏处理。比如手机号。我们常见的处理方式是将手机号中间4位…

MySQL表设计原则

前言 这里简单整理一些常用的数据库表设计原则以及常用字段的使用范围。 表的设计准则 1、命名规范 表名、字段名必须使用小写字母或者数字,禁止使用数字开头,禁止使用拼音,并且一般不使用英文缩写。主键索引名为 pk_字段名;唯…

SSL/TLS认证握手过程

一: SSL/TLS介绍 什么是SSL,什么是TLS呢?官话说SSL是安全套接层(secure sockets layer),TLS是SSL的继任者,叫传输层安全(transport layer security)。说白点,就是在明文的上层和TCP层之间加上一层加密,这样就保证上层信…

ACP(MaxCompute篇)-MaxCompute开发工具

创建MaxCompute项目 第一种创建项目方式 1.知道MaxCompute服务。 2.创建项目。 3.创建成功。 第二种创建项目的方式 1.进入DataWorks控制台。 2.创建工作空间。 3.创建的类型。 4.创建计算方式。 5.自定义选择。 6.创建成功。 MaxCompute开发工具简介 Odpscmd 安装配置 下…

java boot项目认识一下三种格式的配置文件

之前我们在 application.properties 中写了很多配置 但boot并不是只有这种配置方式 boot提供了三种配置方式给我们 话不多说 直接上代码 我们先将 resources下的 application.properties给他干掉 然后在下面创建一个 application.yml 在下面编写代码如下 server:port: 81这…

Hystrix底层核心原理

1、Hystrix资源隔离技术 hystrix github 官方文档:Home Netflix/Hystrix Wiki GitHub hystrix可以完成隔离、限流、熔断、降级这些常用保护功能。 hystrix的隔离分为线程池隔离和信号量隔离 1.1、信号量隔离 信号量隔离就是hystrix的限流功能。虽然名字叫隔离…

企业应该如何选择一个靠谱的软件测试供应商?

人们的生活越来越离不开软件产品,随着选择越多,产品质量愈发重要,因此企业选择一个靠谱的软件测试供应商是一项关键任务,因为测试结果将直接影响到产品的质量、用户的体验和公司的声誉。以下是一些选择靠谱的软件测试供应商的技巧…

C++常用的支持中文的GUI库Qt 6之二:项目的结构、资源文件的使用

C常用的支持中文的GUI库Qt 6之二:项目的结构、资源文件的使用 上一篇Qt 6的下载、安装与简单使用https://mp.csdn.net/mp_blog/creation/editor/130730203,本文介绍Qt 6的项目的结构、资源文件的使用与发布。 基础 这一部分,初学时不明白是…