当前位置: 首页 > news >正文

Linux_vim编辑器入门级详细教程

前言

(1)vim编辑器其实本质上就是对文本进行编辑,比如在.c文件中改写程序,在.txt文件写笔记什么的。一般来说,我们可以在windows上对文本进行编译,然后上传给Linux但是有时候我们可能只是对文本进行简单的调整,或者说没有其他的编译器的时候,vim编译器就成了不得不使用的工具了
(2)vim编辑器比较麻烦,不支持鼠标移动光标。对于文本的编辑,保存,复制,粘贴都需要命令行,不直观操作也没有Windows上的编辑器方便。所以我建议如果是需要大规模改动的文件,可以先使用Windows上的编辑器进行编辑,之后利用FileZilla软件将文件上传到Linux。但是,如果只需要进行微调,vim编辑器就是不错的选择

vim的三种模式

三种模式简介

vim编辑器具有三个模式:一般模式编辑模式命令行模式。这三个模式的侧重点不同,如下。
一般模式:光标移动、复制、粘贴、删除
编辑模式:编辑文本
命令行模式:查找、替换

vim的三种模式切换

三种模式切换图

对于新手而言,下面这个你是大概率看不懂的。但是不要慌,哥来教你看懂。

终端命令行与一般模式的切换

终端命令行是什么

对于新手而言,可能还不是很清楚终端命令行是啥玩意。终端命令行就是我们日常操作的terminal(终端,如下)。

vim的一般模式

(1)从终端命令行进入vim的一般模式时,右下角会出现一行信息,里面包含 操作的文件文件名文件行数,以及当前文件所含字符个数
(2)如果是从其他模式进入vim的一般模式,右下角是没有信息的
(3)在一般模式下,我们可以进行复制,粘贴,删除等操作。

终端命令行--->vim一般模式

如果我们使用vim编辑器对一个文件进行操作,只需要输入vi 文件名
如果我们进入vim编辑器,不想从第一行开始编辑,而是想从其他行开始编辑,只需要输入:
vi 文件名 +n(n为行号)

vim一般模式--->终端命令行

当我们想从vim的一般模式转换到终端命令行时,需要输入“:命令”,命令有如下选择

命令

描述

x

保存当前文档并且退出

q

退出

w

保存文档

q!

退出 vi/vim,不保存文档

需要注意“:x”与“:wq”作用是一致的。

一般模式与编辑模式的转换

编辑模式是什么

在编辑模式下,我们可以对文件进行修改,可以一个字符一个字符的写入,但是不可以复制粘贴

vim一般模式--->编辑模式

在一般模式下,我们输入字符‘i’在当前光标所在字符的前面,转为编辑模式。其实只要记住'i'这一个就可以了,但是有些骚年可能玩的花一点,想秀操作,学其他的命令也可以。只不过这些其他的指令,都可以用i来实现。

命令

描述

i

在当前光标所在字符的前面,转为编辑模式

I

在当前光标所在行的行首转换为编辑模式

a

在当前光标所在字符的后面,转为编辑模式

A

在光标所在行的行尾,转换为编辑模式

o

在当前光标所在行的下方,新建一行,并转为编辑模式

O

在当前光标所在行的上方,新建一行,并转为编辑模式

编辑模式--->vim一般模式

从编辑模式到vim的一般模式转换很简单,按一下ESC键即可。(多按几次也可以,不影响)

一般模式与命令行模式的转换

(1)看到下面这张图,有人可能会有疑惑了。按照上面的切换图,vim的一般模式转换到终端命令行模式不是也需要输入':'吗?那么,一般模式转换为终端命令行的过程,是不是经过了编辑模式呢?我认为是要经过的。
(2)按ESC键,就可以从编辑模式回到一般模式了。

在编辑模式下可进行的操作

vim的编辑模式下进行删除按Backspace,换行按Enter。和Windows的一样,只不过不可以用鼠标大范围的复制,只能一个字符一个字符的操作。

在命令行模式下可进行的操作

显示行号

我们发现,这个操作文本的时候,看不见行号,很麻烦。于是我们可以在命令行模式下,输入":set number"用于显示行号。

隐藏行号

有时候我们不需要看行号了,感觉行号有点麻烦,只需要输入":set nonumber"即可隐藏。

跳转光标

有时候我们想让光标跳转到指定行号,只需要输入":行号"即可跳转到指定行号。

替换

有的时候,我们会想将指定的字符全局替换掉。只需要输入":%s/p1/p2/g" 即可将文件中所有的 p1 均用 p2 替换。

删除

在编辑模式下删除麻烦了,只能一个一个字符的删除。在命令行模式下可以指定行进行删除。
格式:":起始行,结束行d "

一般模式下可进行的操作

光标移动

移动到第一行

在一般模式下,输入gg即可将跳转到第一行。

跳转到最后一行

输入“G”即可跳转到最后一行。但是一般都是小写输入状态,所以需要先按住shift键再输入g

跳转到指定行

有时候我们想跳转到指定行数,输入“ngg”即可跳转到第n行。

翻页

有时,我们想一页一页的翻看。
Ctrl+F(PageDown) : 下翻一屏
Ctrl+B(PageUp) : 上翻一屏

光标上下左右移动

这个我觉得用键盘中的上下左右键就可以移动了。不过,还可以按HJKL键(个人感觉没必要,键盘的上下左右键有相同功能)。K: 向上移动;J: 向下移动;H: 向左移动;L: 向右移动

复制粘贴

方法1

先找到我们需要复制的字符字首,输入字符'v',移动光标(这里可使用"ngg"进行快速移动光标),按下字符'y'即可复制成功。
找到要粘贴的地方,按下字符'p',即可粘贴成功。

方法2

通过快捷键复制粘贴。如果我们想复制当前行输入"yy",如果我们想复制当前行及其以下的n-1行可以输入"nyy"。粘贴键按p。

yy

复制当前行

nyy

复制当前行及其后的 n-1 行

p

粘贴

删除

输入"dd"删除当前行,"ndd"删除当前行及其下面的n-1行

撤销

有时候我们会不小心删除误删需要撤销。只需要在一般模式下输入字符'u'即可。

查找

(1)在windows系统中,我们想在文本中查找指定文字,只需要输入Ctrl+F即可。而在vim编辑器中,在一般模式下,输入"/要查找的字符"就可以了。因为在一个文本中,不可能只有一个符合要查找的字符,所以按下回车键之后,输入n即可向下查找
(2)但是有时候,我们想查找光标纸上的符合条件的字符,输入"?要查找的字符",然后按n即可向上查找

相关文章:

Linux_vim编辑器入门级详细教程

前言(1)vim编辑器其实本质上就是对文本进行编辑,比如在.c文件中改写程序,在.txt文件写笔记什么的。一般来说,我们可以在windows上对文本进行编译,然后上传给Linux。但是有时候我们可能只是对文本进行简单的…...

TCP 的演化史-TCP 是一个过渡

TCP 诞生于 1970 年代早期,彼时没有分组交换网的大规模应用,彼时绝大多数通信都在使用电话,电报,电挂等电路交换技术。 诞生在这种环境下的技术不可能脱离时代的影响,如果一个孩子出生在一个父母关系冷漠的家庭&#x…...

Flask

Flask第三方组件非常全,适合小型 API服务类项目,但第三方组件运行稳定性相对Django差。 基础知识 Flask安装 pip install flask2.0.3Flask库文件 Jinjia2:模板渲染库Markupsafe:返回安全标签 只要Flask返回模板或者标签时都会…...

SAP系统与MES系统的数据协同技术方案

1.MES介绍 本文中提到的MES系统是在西门子公司的SIMATIC IT平台上开发完成。所有的应用子系统进行统一分析、统一设计、统一开发,利用统一的开发平台和数据库系统,保证了管理系统的集成性、高效性。 2.数据协同接口包含的…...

2018年蓝桥杯省赛试题-5道(Python)

文章目录一、日志统计思考二、递增三元组思考三、螺旋折线思考四、乘积最大思考五、全球变暖思考尾声提示:以下是本篇文章正文内容,下面案例可供参考 一、日志统计 题目描述 小明维护着一个程序员论坛。 现在他收集了一份"点赞"日志&#xf…...

Python稀疏矩阵最小二乘法

文章目录最小二乘法返回值测试最小二乘法 scipy.sparse.linalg实现了两种稀疏矩阵最小二乘法lsqr和lsmr,前者是经典算法,后者来自斯坦福优化实验室,据称可以比lsqr更快收敛。 这两个函数可以求解AxbAxbAxb,或arg min⁡x∥Ax−b…...

mac本前端Homebrew下载,操作

1、打开电脑终端 2、下载Homebrew,在终端中输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"开始下载Homebrew,因为这个地址是国外网站,下载失败的话,输入…...

Linux系统之查看进程监听端口方法

Linux系统之查看进程监听端口方法一、端口监听介绍二、使用netstat命令1.netstat命令介绍2.netstat帮助3.安装netstat工具4.列出所有监听 tcp 端口5.显示TCP端口的统计信息6.查看某个服务监听端口三、使用ss命令1.ss命令介绍2.ss命令帮助3.查看某个服务监听端口四、使用lsof命令…...

使用命令别名一键启动arthas

1. 使用命令别名启动arthas 确保单板上有jdk和arthas jdk目录:/home/xinliushijian/arthas/jdk arthas目录;/home/xinliushijian/arthas su xinliushijian编写脚本messi.sh cd /home/xinliushijian/arthas vi messi.sh 内容如下: #!/bin/ba…...

python+pytest接口自动化(2)-HTTP协议基础

HTTP协议简介HTTP 即 HyperText Transfer Protocol(超文本传输协议),是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。HTTP 协议在 OSI 模型中属…...

操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权 注:阅读本编文章前,请先阅读系列文章,以…...

非常好看的html网页个人简历

一. 前言 文末获取gitee链接 在前几天逛b站的时候,发现了个比较实用的东西-----个人简介网页版,相当于网页版的个人简历,相较于PDF形式的,网页版所能呈现内容更加丰富,而且更加美观,在BOOS上被HR小姐姐要…...

轻量级网络模型ShuffleNet V2

在学习ShuffleNet V2内容前需要简单了解卷积神经网络和MobileNet,以及Shuffnet V1的相关内容,大家可以出门左转,去看我之前的几篇博客MobileNet发展脉络(V1-V2-V3),轻量级网络模型ShuffleNet V1🆗&#xff…...

分享美容美发会员管理系统功能的特点_美容美发会员管理系统怎么做

人们越来越关心美发,美发行业发展迅速,小程序可以连接在线场景,许多美发院也开发了会员卡管理系统。那么一个实用的美发会员管理系统怎么制作呢?它有什么功能?我们一起来看看~(干货满满,耐心看完…...

Oracle-05-DCL篇

🏆一、简介 Oracle的DCL代表数据库控制语言,用于管理数据库对象的访问和安全性。DCL的两个主要命令是GRANT和REVOKE。 GRANT命令用于授予用户或角色对数据库对象的访问权限,例如表、视图或存储过程。GRANT命令的语法如下: GRANT privilege_name [, privilege_name]... …...

tess4j简单使用入门

tess4j下载 下载地址: https://sourceforge.net/projects/tess4j/ 不要直接下载,点击files,然后下载最新版 下载解压后放到指定的目录即可,这里放到d:\jar目录下 tess4j根目录: d:\jar\tess4j tess4j使用 把test4j项目目录中dist和lib目录下的所有jar包导入到需要的项目中…...

WebGPU学习(4)---使用 UniformBuffer

接下来让我们使用 UniformBuffer。UniformBuffer 是一个只读内存区域,可以在着色器上访问。 这次,我们将传递给着色器的矩阵存储在 UniformBuffer 中。演示示例 1.在顶点着色器中的 UniformBuffer 这次我们在顶点着色器里定义一个名为Uniforms的新结构体…...

Http客户端Feign-远程调用

Feign的使用步骤 引入依赖添加EnableFeignClients注解编写FeignClient接口使用FeignClient中定义的方法代替RestTemplate Feign的日志配置 1.方式一是配置文件,feign.client.config.xxx.loggerLevel 如果xxx是default则代表全局如果xxx是服务名称,例如userservi…...

RK3568镜像的拆包和打包

文章目录 前言一、window上分包和打包分包打包二、Linux上分包和打包分包打包总结前言 本文记录在win10上利用瑞芯微提供的工具进行分包和打包,同样也有Linux教程 提示:以下是本篇文章正文内容,下面案例可供参考 一、window上分包和打包 分包 window下一般直接利用工具即…...

《设计模式》适配器模式

《设计模式》适配器模式 适配器(Adapter)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况: 在已有的类中添…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...

break 语句和 continue 语句

break语句和continue语句都具有跳转作用&#xff0c;可以让代码不按既有的顺序执行 break break语句用于跳出代码块或循环 1 2 3 4 5 6 for (var i 0; i < 5; i) { if (i 3){ break; } console.log(i); } continue continue语句用于立即终…...