【Linux】vim编辑器的使用

news2024/11/28 10:47:19

文章目录

  • vim的基本概念
  • vim指令集
      • 复制粘贴
      • 撤销、剪切
      • 光标定位

vim的基本概念

vim是一款多模式的编辑器,在我们常用的模式有3~5种。分别是命令模式(command mode)、插入模式(Insert mode)和底行模式( last line mode)还有就是替换模式视图模式

在这里介绍一下各种模式之间的转换,首先再打开vim的时候就是默认的就是命令模式,下面图片就是默认打开的样子。
在这里插入图片描述
在命令模式切换到插入模式,按i就进入插入模式了,退出插入模式就是按Esc,当我们并不知道自己处于什么模式的情况下就无脑的按Esc,就会退到命令模式。
输入i之后最底行,就是图片的样子。
在这里插入图片描述
从命令模式切换到底行模式,输入Shift + :,当我们在编译器当中写了一段代码,想要退出并保存就在底行模式输入wqw是保存,q是退出。

vim指令集

在这里介绍的指令绝大多是都是基于命令模式上的,在有一些在底行模式下的。
底行模式:输入set nu/set nonu 是给我们的代码行标志行号。
在这里插入图片描述
在底行模式当中输入shift + :+ / 是可以搜索在代码当中,下面图片当中就是对字母n进行搜索。
在这里插入图片描述
当我们再写入一些代码之后想要保存,却会发生拒绝或者提醒,这时在底层模式使用shift+:+!+wq就是强制保存并退出。
shift+:+!+Linux命令就可以不用退出文件,就可以执行。
在命令模式当中我们也提到了修改代码的方法,但是只能一个一个的修改,当我们碰到了很多出相同的代码需要修改这里就可以使用shift+:+%s/修改前的代码/修改后的代码/g
shift+:+vs+文件名,这段指令在底行模式使用,可以使vim进行分屏,ctrl+w+w是将光标移至另一个界面。

命令模式

复制粘贴

在命令模式下在光标所对应的行输入yy/nyy,就是拷贝了,在输入p/np就是粘贴了,粘贴在光标的下一行(np的意思是,例如100p就是粘贴一百次,n代表的是数量,nyy也是相同的)。

撤销、剪切

在命令模式下输入u就是撤销,如果想要将撤销撤销就是Ctrl+r
在命令行下输入dd/ndd就是将该行或者该n行剪切。在次输入p就是将剪切下来的进行拷贝,如果并不将剪切下来的内容进行拷贝,那么dd就是删除。

光标定位

当代码过多时想要更快更方便的到最底行,这时就在命令模式输入Shift+g,想要到达最顶行就输入gg,它们同样是支持n+shift+g的。
上面的是换行,而我们在行内也想要快速的移动,shift+4是将光标移到该行的最末尾,shift+6是将光标移到该行的最开始。
还有就是单词与单词之间移动,除字母以外的字符也会被认为单词,w是向右移动,b是向左移动。它们也是支持n的操作。
当我们想要快速的切换字母的大小写,就是用Shift + ~
替换光标所在字符,输入r,之后输入你想要修改的字符,同样也是支持n的操作。当输入nr时就是光标往右的n个字符全变成你想要修改的那一个字符。
当我们想要修改一段字符时,就输入shift+r,但是并不能改变添加字符数量,只是在原本的字符数量上修改。这也是切换到另外一种模式,替换模式。
行内删除,输入x,也是支持n的操作。从左到右。
行内删除,输入X,也是支持n的操作。从右到左。
vim下的移动光标并不是键盘上的上下左右四个箭头,虽然它们也是能用的,但是标准的是hjkl这四个键,分别是左、下、上、右。从下面的图片也可以看出为什么是用hjkl来操控光标的上下左右。
在这里插入图片描述

从命令模式切换到插入模式,上面我们介绍了一种方式i,而还有两种方式进入就是oai是就在当前位置,o是切换到下一行,a是在该行向后移动一位。
在这里插入图片描述

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

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

相关文章

【PHP 随记】—— ThinkPHP 配置数据库

👉总目录👈\large\colorbox{skyblue}{👉总目录👈}👉总目录👈​ 文章目录1、数据库连接及导入① 数据库连接② 数据库导入2、配置 ThinkPHP 数据库连接信息① 配置连接信息1、数据库连接及导入 ① 数据库连…

大数据分析案例-基于随机森林算法构建人口普查分析模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

Datawhale 202301 设计模式 | 人工智能 现代方法 习题

Exercise 1 绪论 Q:用您自己的话来定义:(a)智能,(b)人工智能,(c)智能体,(d)理性,(e)逻…

【大数据趋势】1月24日 流动、固定汇率和货币政策独立性三者的三者选二,A股持续的会上涨。

前言:昨天写的被朋友看到,认为我写的太水,故意不提日常讨论的那个关键指标,所以下午重新修改了一下。 确定欧美大势市场形态1 - 美元指数 关键位置大概率不会一次就破,有较强反弹可能,带动美股反弹 作为长…

MH-100X微波运动传感器介绍

MH-100X微波运动传感器简介微波运动传感器是利用多普勒雷达原理设计的微波移动物体探测器。不同于一般的红外探测器,微波传感器通过通过检测物体反射的微波来探测物体的运动状况,检测对象将并不会局限于人体,还有很多其他的事物。微波传感器不…

java基础语法——条件判断与循环语句

目录 一、流程控制语句 流程控制语句分类 二、顺序结构 顺序结构概述 顺序结构图 三、选择结构 选择结构概述 选择结构(if语句1) 选择执行图1 选择结构(if语句2) 选择执行图2 选择结构(if语句3) 选择执行图3 选择结构(switch语句) switch语句执行流程图 四、 循环…

剪映电脑版超简单使用教程Mac

相机 我主要用到的两个键 点击开始创作导入本地视频 导入本地视频 将素材拖拽到时间线上 时间线面板操作 撤销、恢复、分割 撤销上一次操作也可以用快捷键 command z 定格、倒放、镜像、裁剪 剃刀 点击菜单的分割可以出来一个剃刀,分割更方便 选择模式 …

代码随想录算法训练营第十二天|239. 滑动窗口最大值| ● 347.前 K 个高频元素

239 滑动窗口最大值 看完题后的思路 这是一道典型的单调队列的题,如果不是之前刷过一遍,对这道题没有一点头绪。即使刷过,也只是留了个印象。 解题思路 对于本道题来说,到窗口右移,如果一个新元素a进入窗口&#x…

【Maven】分模块开发与设计与依赖管理

目录 一、分模块开发与设计 1. 分模块开发的意义 2. 分模块开发(模块拆分) 二、依赖管理 1. 依赖传递 2. 可选依赖 3. 排除依赖 4 可选依赖和排除依赖的区别 一、分模块开发与设计 1. 分模块开发的意义 问题导入 分模块开发对工程有什么好处…

ChatGPT - 横看成岭侧成峰

定义 ChatGPT 是什么? ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序,由 OpenAI 公司于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。 ChatGPT以对话方式进行交互,可以用于包括自动文本生成、自…

一起自学SLAM算法:8.3 LOAM算法

连载文章,长期更新,欢迎关注: 不管是Gmapping还是Cartographer,通常都是采用单线激光雷达作为输入并且只能在室内环境运行。虽然Cartographer支持2D建图和3D建图模式,但是Cartographer采用3D建图模式构建出来的地图格式…

微信小程序 java失物招领系统uniAPP设计

开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 基于微信小程序的失物招领系…

四轮两驱小车(三):STM32驱动MPU6050进行转弯

前言: 寒假已经过了一半了,前段时间跟学弟一起从零开始搞了一下深度学习,现在才想起来这个系列还没有更完。本篇博客主要介绍一下这个小车转直角弯的神器----MPU6050 MPU6050介绍: 我所采用的MPU6050是某宝上十几块钱的这种&…

FPGA:Verilog HDL程序的基本结构

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥本文已收录于FPGA系列专栏:FP…

Redis从入门到精通-常用命令

本文使用命令行模式进行操作 (1)keys keys的作用是返回所有符合条件的key的列表 *是返回所有的,名字不限制 也可以使用限制 这个命令的原理是查询到所有名字符合条件的,然后返回 练习可以用,但是千万别在生产环境使…

C++学习笔记之数组,结构体...

1️⃣.一维数组的声明: 一般声明:typeName arrayName[arraysize]; 要创建数组,可使用声明语句。数组的声明应该指出数组的①存储在每个元素中的值的类型②数组名③数组中的元素数 比如: short month[12] //create an array o…

各位软件工程师,你知道如何转行跨入Web3.0领域吗?

本篇博客介绍一些 Web3 领域相关知识,由于擦哥长期从事的 Python 研发工作,所以很多内容将从 Python 程序员的视角出发进行阐述。 本系列文章由擦哥撰写,下述用第三人称橡皮擦转述。 文章目录Web3 的学习路径Web3 是什么?语义网络…

轻松玩转树莓派Pico之六、pico-project-generator使用

之前几个项目,都是通过copy老项目的CMakeLists.txt方式来编译项目,今天来体验一下树莓派官方提供的工具pico-project-generator。pico-project-generator是树莓派官方出的Pico C SDK 项目的自动生成工具,该工具可以通过配置,自动生…

JavaEE9-Spring Boot概念,创建和运行

目录 1.Spring Boot是什么?为什么要学? 1.1.概念 1.2.优点 2.Spring Boot项目创建 2.1.使用Idea创建(ide开发商提供) 2.1.1.使用Idea社区版 2.1.2.使用Idea专业版 2.2.网页版创建(Spring官方提供) …

基于深度学习的车道线检测论文解读

Ultra Fast Structure-aware Deep Lane Detection 论文地址:https://arxiv.org/abs/2004.11757 1.任务概述 车道线检测使用OpenCV就能够实现,而基于深度学习的车道线检测尝试解决车道线检测中的遮挡问题。 数据集介绍: 常用数据集:CULane Dataset,Tusimple(特点就是非常…