Linux中 vim 编辑器的使用

文章目录

  • 前言
  • 一、vim编辑器模式
  • 二、简单的插入、保存和退出
  • 三、 命令模式下常用命令即其作用
  • 1. 命令模式


思维导图
在这里插入图片描述

前言

首先,了解一下 什么是vim 编辑器?在不同的系统中,文本的管理也会不同;windos系统就不多说了,这里主要是讲linux文本的编辑,顾名思义,linux的文本是通过 “vim" 来编辑的。

当然,Linux的编辑器可不止这一种,其还有图形模式的gedit、kwrite、openoffice等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、vim编辑器模式

vim 编辑器内设有3种模式,命令模式、编辑模式、末行模式。进入vim编辑器后,三种模式之间是可以相互切换的。

  1. 命令模式:
    打开 Vim 后,默认进入的就是命令模式。

可以执行操作:

(1)移动光标(上、下、左、右箭头或其他移动快捷键)
(2)删除、复制、粘贴文本 查找和替换文本
(3)使用 /对文件执行各种全局操作
(4)切换到其他模式

  1. 编辑模式:
    编辑模式也可以称为插入模式,输入iao都可以从命令模式进入插入模式,退出插入模式时,只需要按键盘上的Esc键,退出即可,当然退出后是命令模式

从命令模式进入插入模式,可以通过按下以下任一键:

(1)i(在光标前插入)
(2)a(在光标后插入)
(3)o(在当前行下方新建一行并插入)
(4)O(在当前行上方新建一行并插入

  1. 末行模式:
    末行即是最后一行,从命令模式进入末行模式,通常通过按 : 键触发。在末行模式下,可以输入单行或多行的 Ex 命令.

执行诸如:

(1)文件保存及退出 (:w 写入文件,:q 退出,:wq 保存并退出,:q! 强制退出不保存)
(2)查找和替换:s/search/replace/
(3)设置选项:set nu 显示行号
(4)执行Shell命令:!cmd
(5)执行脚本或宏定义等高级操作。


二、简单的插入、保存和退出

/home 下新建一个 text 文本文件

touch text.txt

使用 vim 编辑 text.txt

vim text.txt 

进入后默认是命令行模式
在这里插入图片描述
要进入编辑模式(插入模式),需要输入开关命令,iao ,进入后输入hello world,
在这里插入图片描述
最后保存内容,可按键盘Esc键退出编辑模式,然后输入:wq退出vim编辑器
这样text.txt中就保存这 ”hello world“ 这个内容


三、 命令模式下常用命令即其作用

1. 命令模式

命令作用
光标移动h向左移动光标一个字符
j向下移动光标一个字符
k向上移动光标一个字符
l向右移动光标一个字符
0(数字零):移动到行首
$移动到行尾
gg移动到文件首行
G移动到文件最后一行
Ctrl + f / PageDown向前翻页
Ctrl + b / PageUp向后翻页
H移动到屏幕顶部
M移动到屏幕中部
L移动到屏幕底部
文本复制与粘贴yy复制当前行
nyy(如3yy):复制接下来的n行
p在光标下一行粘贴
P在光标上一行粘贴
"xy复制到寄存器x(x可以换成任意字母)
"xp从寄存器x中粘贴
文本删除x删除光标处的单个字符
dw删除光标到单词结尾
dd删除当前行
D从光标位置删除至行尾
nggngg然后d(比如3dd):删除接下来的n行
文本替换r + 字符替换光标下的单个字符
R进入替换模式,不断输入字符会替换光标后的所有字符直到按下Esc键/td>
文本修改cw更改从光标开始到单词结尾的文本
cc更改整行
C从光标位置更改到行尾
撤销与重做u撤销最后一次更改
Ctrl + r重做(即撤销的反操作)
搜索与替换/pattern向前搜索给定的模式(pattern/td>
?pattern向后搜索给定的模式
:%s/old/new/gc在整个文件中搜索old并替换为new,每处替换询问确认(c表示confirm)
文件操作:w保存当前文件
:q退出Vim(如果没有更改则直接退出,如果有未保存的更改则无法退出)
:q!强制退出,不保存任何更改
:wq保存并退出

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【视频异常检测】Diversity-Measurable Anomaly Detection 论文阅读

Diversity-Measurable Anomaly Detection 论文阅读 Abstract1. Introduction2. Related Work3. Diversity-Measurable Anomaly Detection3.1. The framework3.2. Information compression module3.3. Pyramid deformation module3.4. Foreground-background selection3.5. Trai…

第七课-----分支切平面

割平面方法的基本思想是对于一个优化问题而言,通过不断添加约束条件来切割可行域, 最终将可行域不断变小,相当于搜索空间变小。在LP中讲过,一个等式约束就等价于一个超平面,一个不等式约束就代表一个半空间&#xff0c…

从零开始搭建游戏服务器 第二节 Actor模型与应用

目录 复习本节内容正文什么是Actor模型如何应用创建Actor基类创建RootActor创建AkkaContext创建ConnectActorManager和ConnectActor生成actor并发送消息给它 课后作业结尾 复习 上一节我们使用gradle构建了一个多模块系统。 并且在登录服启动了Netty服务,监听confi…

spacy进行简单的自然语言处理的学习

自然语言处理基本概念 概念:自然语言处理,是让机器理解人的语言的过程。 作用:通过使用自然语言处理,机器可以理解人的语言,从而进行语义分析,例如:从一句话中判断喜怒哀乐;从一段文…

lua脚本的基础内容

官方地址:http://luajit.org/ 官方wiki地址:http://wiki.luajit.org/Home 推荐书籍: OpenResty 最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ lua基础文档:https://www.runoob.com/l…

数据库-mysql安装

我们使用两种方式安装配置mysql数据库 一种采用无安装绿色版 一种采用官方提供的msi,windows安装版 亲测两种都可运行,有的电脑可能其中一种不能运行那可以尝试另外一种,有条件的同学可以试试docker版。 mysql安装 初次安装mysql之前建议大家…

消息队列思想学习(以及池化思想延展)

目录 消息队列的功能 消息中间件必备 池化思想以及弹性线程池的设计 弹性连接池 [核心参数:初始连接数,最大连接数,最大空闲时间] 弹性线程池 [核心参数:coreThreadCount, maxThreadCount] 引言:为啥要把消息队列…

JUC之Java对象内存布局

Java对象 对象在堆中的存储布局 它保存了什么 对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例 对象头有多大?在64位系统中,Mark Word占了8个字节,类型指针占了8个字节,一共是16个字…

uniapp——第2篇:编写vue语法

前提,建议先学会前端几大基础:HTML、CSS、JS、Ajax,还有一定要会Vue!(Vue2\Vue3)都要会!!!不然不好懂 一、去哪写? 就在【pages】的你的人一个页面文件夹里的【.vue】文…

中间件 | RPC - [Dubbo]

INDEX 1 Dubbo 与 web 容器的关系2 注册发现流程3 服务配置3.1 注册方式 & 订阅方式3.2 服务导出3.3 配置参数 4 底层技术4.1 Dubbo 的 spi 机制4.2 Dubbo 的线程池4.3 Dubbo 的负载均衡策略4.3 Dubbo 的协议 1 Dubbo 与 web 容器的关系 dubbo 本质上是一个 RPC 框架&…

计算机二级Python题目13

目录 1. 基本题 1.1 基本题1 1.2 基本题2 1.3 基本题3 2. turtle画图 3. 大题 3.1 大题1 3.2 大题2 1. 基本题 1.1 基本题1 lseval(input()) s"" for item in ls:if type(item)type("香山"):s item print(s) 1.2 基本题2 import random random.se…

使用tui-image-editor 图片编辑 标注图片

需求背景: 鼠标悬浮在图片上 出现编辑按钮 点击编辑 对该图片进行编辑(输入文案、涂鸦、标记、裁剪等) 可以体验一下它线上编辑器 Image-editor | TOAST UI :: Make Your Web Delicious! 使用 首先在你的前端项目中安装: np…

python-在图片上标实心圆点

代码: from PIL import Image, ImageDraw# 打开图像 image_path path_to_your_image.jpg image Image.open(image_path)# 创建一个可以在上面绘图的对象 draw ImageDraw.Draw(image)# 设置圆点的坐标和颜色 x 100 # 圆点的x坐标 y 100 # 圆点的y坐标 color …

【JVM】GCRoot

GC root原理 通过对枚举GCroot对象做引用可达性分析,即从GC root对象开始,向下搜索,形成的路径称之为 引用链。如果一个对象到GC roots对象没有任何引用,没有形成引用链,那么该对象等待GC回收。 可以作为GC Roots的对…

Vue命令式组件的编写与应用

目录 1.引言 2.传统的组件 3.命令式组件 4.命令式组件的应用场景 1.引言 大家好!今天我们来聊聊Vue.js中的一个有趣话题——命令式组件。你有没有觉得,有时候我们在Vue模板里写组件,就像是在玩搭积木,每个积木都有固定的形状…

第二百零六回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"给geolocator插件提交问题的结果"相关的内容,本章回中将介绍自定义标题栏.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我…

set与zset数据类型

set类型基础 redis集合(set)类型和list列表类型类似,都可以用来存储多个字符串元素的 集合。但是和list不同的是set集合当中不允许重复的元素。而且set集合当中元素是没有顺序的,不存在元素下标。 redis的set类型是使用哈希表构造的,因此复…

Java面向对象案例之描述专业和学生(4)

类的方法图 学生类: 属性:学号,姓名,年龄,所学习的专业方法:学习的方法,描述学习状态。描述内容包括姓名、学号、年龄、所学习的专业信息 专业类: 属性:专业编号&#xf…

阅读 - 二维码扫码登录原理

在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码&a…

线性回归 quickstart

构建一元一次方程 100个(X, y ),大概是’y3x4’ import numpy as npnp.random.seed(42) # to make this code example reproducible m 100 # number of instances X 2 * np.random.rand(m, 1) # column vector y 4 3 * X np.random…