当前位置: 首页 > 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)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况: 在已有的类中添…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...