CentOS中vim的使用

news2024/9/21 14:24:37

vim是我们linux中很经典的一款编译器,所以使用vim是我们在学习过程中必不可少的,我们下面说一下vim的使用和安装

在某些服务器上刚开始不一定时有vim的,或者是vim的版本比较老一点,所以这时我们就可以安装一下vim

sudo yum -y install vim   这个就是安装vim的命令

那么我们的vim安装好之后,我们应该怎么使用呢?

vim的使用

我们知道vim是一款编辑器,那么我们的vim当然是编辑文本的,那么我们想要使用vim当然是用vim打开文本

我们要是就是这样 vim 后面直接跟文件名,打开文件

那么对于我们第一次打开vim我们的界面是这样的

这时候我们发现输入不了,不过这里有可能有人还真输入进去了,不过这都不重要下面我们简单的介绍一下vim

vim的模式 

对于vim来说vim一个有6中模式,但是我们这里只说常用的三种

1.默认模式(命令模式):默认模式就是我们刚进去的样子什么都干不了,默认模式其实是命令模式,在这个模式下我们有很多命令可以输入

2.插入模式:插入模式就是我们的可以输入文本的模式,我们要是想进入插入模式我们可以输i/a/o  这个个都可以由默认模式转到插入模式,不过由默认模式到插入模式还有其他的命令,这里只说这三个

3.底行模式:我们在底行模式也有一些命令,就比如我们要是文本输入完了,想要退出,那么我们就需要由插入模式转到命令模式,在由命令模式转到底行模式,那么怎么到命令模式呢?你无论在哪一种模式下,只要点ESC键,就可以进入命令模式,然后在输入shift+;=  (:)    就可以到底行模式,我们下面看一下这三种模式的区别,命令模式就是最上面的

这个是插入模式,左下角有一个插入

 

这个是底行模式,我们看到我们这里就可以输入了,不过想要从进入到这里面的模式种的任何一个,都必须从命令模式下转到其他模式

我下面给大家画张图让大家理解一下 

就是这样,模式之间的转换 

vim的退出

那么我们现在来说一下,如何退出

我们刚才说了,要是想退出,就必须在底行模式下,我们如果想退出的话我们就可以在底行模式下输入这几条

如果是只输入q的话就是退出

 

只输入w就是光保存

 

wq就是先保存在退出

 

q!就是强制退出,!就是强制

 

wq!就是强制保存退出

这就是关于退出的几条命令

 下面我们说一下命令模式下的命令

vim的命令

我们现在在一个文件里面输入一段文本

那么我们现在要保存怎么弄?

到底行模式下 w 就是保存,如果想保存退出就是wq

我们现在看一下我们是否保存成功

 

还是否记得我们的cat命令? 不记得回去复习(-  __ -)

我们看到已经保存了,那么我们在打开看一下

我们看到还是存在的,那么我们现在想知道自己编译了多少行文本怎么办呢? 我们可以通过底行模式把行号调出来

调出行号(底行模式) set nu   关闭行号 set nonu

 

我们看到行号出来了

 

 

行号又关闭了,但是我们还是习惯打开行好号

我们现在看到这个绿色的光标了吗?我们这个光标就事输入删除等操作的定位标志

所以我们如果想快速把光标移动到想要移动的位置怎么做呢?

光标定位命令(命令模式)

我们现在又上面的文本,我们如果想快速到第一行怎么弄呢?

gg: 可以快速把光标移动到第一行(命令模式)

 shift + g(G):快速把光标定位到最后一行(命令模式)

(n)+shift+g(nG)说明这里的n是数字(命令模式)

(n)+shift+g(nG):移动到指定行(命令模式)

我们这里输入4 + shift + g

我们就到了第4行 

既然我们可以到指定的行了,那么我们每一行太长我们又不想一个字符一个字符的点呢?

shift + $:快速定位到行尾(命令模式)

shift + ^: 快速定位到行首(命令模式)

 

w:在一行中以单词为单位向后移动(命令模式)

b:在一行中以单词为单位向前移动(命令模式)

 

 

光标移动

关于光标移动,我们可以使用上下左右键,我们还可以使用  h,j,k,l这几个键

 

h:向左移动一个字符(命令模式)

 

j:向下移动一个字符(命令模式)

 

k:向上移动一个字符(命令模式)

 

l:向右移动一个字符(命令模式)

vim中的复制 粘贴

我们在windows中的文本编辑的时候也经常需要复制粘贴,那么我们在vim中怎么左呢?

yy:复制当前光标所在行(命令模式)

p:粘贴复制到的内容(命令模式)

我们刚才对4行进行yy,然后直接p,我们就得到了这样的情景

u:撤销 (命令模式)

如果我们对刚才的复制后悔了,那么我们使用u就可以撤销刚才的操作

我们撤销掉了

(n)yy:赋值从光标算起的n行(命令模式)

我们2yy就是赋值从4行开始往下数2两行,然后p就粘贴出来了,我们在撤销掉

(n)p:赋值n行粘贴到的内容 (命令模式)

我们现在对第4行复制一下,然后我们10p

就是这样,我们继续撤销掉

 

我们又后悔了,对我们刚才的撤销,我们不想撤销了

ctrl + r:撤销刚才的撤销

我们又恢复了

那么我们继续撤销掉

 

大小写切换 (替换模式)

shift + ~:大小写切换(替换模式)

我们现在把4行切换成大写

 

我们可以一直shift+~光标就可以一直向后移动,把大小写转换,大写会变成小写,小写会变成大写

字符替换 

r:替换一个字符(命令模式)

小r会替换一个字符,会把光标位置的字符替换,所以我们现在输入r,然后输入我们想要替换的字符

 

我们输入r在输入9,就成功的替换为了9

shift + r:从光变位置开始一直替换 (命令模式)

这时我们就进入了replace模式,我们就可以开始替换了

 

我们就可以一直替换,替换结束之后可以直接ESC退出替换

删除 

dd:删除/剪切(命令模式)

dd就是删除当前光变所在行,也是剪切,所以同样可以把dd掉的这一行粘贴出去

我们直接将4行dd掉了,然后我们可以10p看一下

 

就是这样,我们撤销回最开始

 

(n)dd:删除/剪切n行

我们2dd看一下

就是这样,同样我们也可以粘贴,我们继续撤销会去

x:删除当前光标所在字符 (命令模式)

我们就删掉了刚才的c字符,我们撤销回去

 (n)x:删除光标和光标右面的n个字符(命令模式)

我们输入4x

我们的cout就被删掉了,我们撤销回去

 

shift + x(X):删除光标左面的一个字符 (命令模式)

我们看到删掉了,撤销会去

(n) + shift + x(nX):删除光标左面的n个字符(命令模式)

我们5+shift+x

就是这样,这个就是vim中常用的命令,由于vim中的命令太多,所以我们之说常用的,感兴趣的可以去搜索一下vim命令大全

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

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

相关文章

最简单的 Java 项目——Hello world(小白快速入门指南)

文章目录 最简单的 Java 项目——Hello world步骤1:新建 Java 项目步骤2:编写最简单的 Hello World 程序步骤3:测试 附录1、.iml文件(iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息。&#xff0…

免费开源PCB设计工具--KiCad安装,FreeCAD下载方法

中小企业在使用AD等工具时,会被律师函关照,下面介绍一款跨平台开源PCB设计工具KiCad 。本文仅介绍安装方法。 1. KiCad 简介 KiCad 一个跨平台的开源电子设计自动化套件。 KiCad EDA 是一款用于印刷电路板设计的开源自由软件,最初由法国人…

Shell编程——iptables防火墙

Shell编程——iptables防火墙 一、Linux包过滤防火墙1、Linux防火墙概述2、netfilter3、iptables4、netfilter/iptables关系 二、四表五链1、表链作用2、四表3、五链4、数据包到达防火墙时,规则表之间的优先顺序5、规则链之间的匹配顺序 三、iptables的安装四、ipta…

Swing简述

一、Swing概述 GUI(图形用户界面)为程序提供图形界面,它最初的设计目的是为程序员构建一个通用的GUI,使其能够在所有的平台上运行,但Java 1.0中基础类AWT(抽象窗口工具箱)并没有达到这个要求&a…

chatgpt赋能Python-python3_kafka

简介 Kafka是一个分布式的消息队列系统,由LinkedIn开源。它被设计成高性能、高吞吐量的消息传输系统,适用于分布式系统中的实时数据流处理。 Kafka的优势 在使用Kafka之前,我们需要考虑以下问题: 1.数据处理速度是否快速&…

黑客如何从零学起?

一、MYSQL5.7 MySQL是如今使用最多的数据库,是众多企业的首选,在未来几年都将被持续推动发展。 学习MySQL需注重实战操作,循序渐进地了解MySQL中的各项技术,这样才能在实际工作中的关键应用。 想进入网络安全行业, …

机器学习-2 线性回归

线性回归及最大熵模型 算法概述最小二乘法一元线性回归求解方程系数代价函数最小二乘法求解系数 多元线性回归举例 算法应用数据集介绍实现线性回归算法实现线性回归的算法流程最小二乘法的局限性 梯度下降法场景梯度下降算法(Gradient Descent)算法实例…

Electron,我与你,今天不谈技术谈感情!

目录 前言一、无知二、初见三、再见四、相遇五、行动总结 前言 今天不谈技术,谈谈我和 Electron 的缘分。可能有人觉得,或许有些人认为,和一个框架谈感情这不是疯了吗?但是,我相信每个开发者都会有同样的经历&#xf…

关于蒙特卡罗方法及其在信号处理中的应用

说明 最近想探讨一下毫米波雷达测量准确度及其改善的问题,这个话题下可供讨论的问题有很多,蒙特卡罗方法(或者说基于蒙特卡罗方法对测量准确度以及精度的评估)是其中之一,该方法是一个十分有效的工具,在科研(发paper)上也是不可少…

UE5 C++类如何读取Excel配置表?

UE5 插件开发指南 前言0 如何编写读取数据的结构体?1 如何读取数据?1.0 如何获取数据资产的路径?2 如何调用商店子系统来读取数据?前言 虚幻引擎兼容CSV和JSON格式的数据结构,这里的CSV是Excel表格的保存格式,如下图所示: 打开任意Excel表格,点击文件菜单,然后鼠标悬浮到…

一文2000字从0到1教你搭建有效的测试环境

作为软件测试行业的从业者,搭建测试环境一定是在工作中少不了的任务安排,那么如何有效的搭建测试环境,咱们今天和大家聊一聊。 首先大家要明白测试环境是为了完成软件测试工作所需要的硬件资源,软件资源,网络资源&…

计算机网络实验(ensp)-​实验2:PPP协议及PAP认证

目录 实验报告: 实验操作 1.建立网络拓扑图并开启设备 2.修改路由器名字 1.输入命名:sys 从用户视图切换到系统视图 2.输入命名:sysname 姓名 修改路由器名字 3.重复步骤1和2配置每台路由器 3.抓包 1.点击菜单栏的“数…

(转载)从0开始学matlab(第7天)—运算的优先级与内置函数

1运算的优先级 许多的数学运算写入一个表达式是非常平常的事。例如,考虑初速度为 0 的匀加速运动的位移表达式 distance 0.5 * accel * time ^ 2 这个表达式有二个乘法运算和一个幂运算。在这样的表达式中,知道运算的先后顺序是十分重要的。如果幂运算先…

Redis系统学习篇-02

目录 redis进阶使用 redis作为数据库、缓存的区别 缓存常见问题、面试回答思路 redis的持久化 参考文档(redis.net.cn):Redis 教程_redis教程 系统学习01篇,总结起来就是,可以把redis想象成一个key/value的hashmap,只不过val…

Linux之路SNAT策略及应用

目录 二、SNAT实验的部署设计 三、具体实验步骤 第一步:做好实验前的虚拟机设置 1)网关服务器的设置 ①添加网卡,修改vmnet ②修改ens33为网关服务器的内网网卡 ③修改新加网卡ens36(这里添加的网卡是什么就用什么&#xff…

FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统

FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统 文章目录 FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统1. 前言2. FATFS文件系统介绍2.1 文件系统的概念和作用2.2 FATFS的特点和优势 3. 相关源码获取3.1 FatFs文件源码下载3.2 国民技术N32软件开发…

我们详细讲讲UI自动化测试最佳设计模式POM

概念 什么是POM? POM是PageObjectModule(页面对象模式)的缩写,其目的是为了Web UI测试创建对象库。 在这种模式下,应用涉及的每一个页面应该定义为一个单独的类,类中应该包含此页面上的页面元素对象和处…

【Java校招面试】实战面经(一)

目录 前言一、单链表找三等分点(链表可能有环)二、讲几个熟悉的设计模式三、Spring IoC、AOP是什么,是如何实现的,Spring MVC是什么?四、怎么实现线程安全,各个实现方法有什么区别,synchronized…

Linux防火墙之iptables(下)

目录 一、通用匹配 1)协议匹配 2)地址匹配 3)接口匹配 二、隐含匹配 1)端口匹配 2)TCP标志位的匹配 3)ICMP的类型匹配 ①请求规则设置 ②回显匹配 ②显示目的不可达匹配 三、显示匹配 1 &…

教你精通Java语法之第十三章、反射

目录 一、定义 二、用途 三、反射基本信息 四、反射相关的类 4.1Class类 4.1.1Class类中的相关方法(方法的使用方法在后边的示例当中) ​编辑 4.2反射示例 4.2.1获得Class对象的三种方式 4.2.2反射的使用 五、反射优点和缺点 六、重点总结 一、定义 Java的反射&am…