三分钟学会用Vim

news2024/9/22 13:38:01

Vim知识点

目录

  • Vim知识点
    • 一:什么是vim
    • 二:vim常用的三种模式
    • 三:vim的基本操作

一:什么是vim

vim最小集

vim是一款多模式的编辑器—各种模式—每种模式的用法有差别—每种模式之间可以互相切换

但是我们最常用的就是3~5个模式

vim就是一个单纯的编辑器

注意事项:

1.如果你知道自己目前所处的是什么模式,直接无脑ESC

2.退出的时候,一般先保存后退出

3.vim操作,不要用鼠标

要进入vim我们直接vim 文件名,如下图:

在这里插入图片描述

二:vim常用的三种模式

在这里插入图片描述

正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式

末行模式/底行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

在命令模式下,shift+: 即可进入该模式。

要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

我这里一共有12种模式:six BASIC modes和six ADDITIONAL modes

三:vim的基本操作

我们先来说一下如何调出行号,在底行模式下,输入set nu就可以调出行号,输入set nonu就可以关闭行号。

但是大多数的指令都是在命令模式下操作的,不是底行也不是插入。

接下来我们看看vim的一些基本指令:

首先我们Linux并没有完全兼容小键盘,虽然可以使用小键盘上的上下左右按键,但是我们不建议这么使用,我们在Linux里面有专属的上下左右:hjkl

h:左,因为它是四个字母里面最左边的

l:右,因为它是四个字母里面最右边的

j:下,可以理解为jump,向下跳

k:上,可以理解为king,高高在上

yy/nyy:复制当前行或者复制当前行在内的指定若干行。

p/np:粘贴一行或者多行的内容到当前光标所在行的下一行

未复制前:

在这里插入图片描述

我们对第一行yy操作,复制第一行,然后光标放在最后一行,然后p操作。如下图:

在这里插入图片描述

我们这次输入7yy,然后光标移动到最后一行:

在这里插入图片描述

然后我们p操作:

在这里插入图片描述

我们就将这7行复制到了光标所在行的下一行。

如果我们7p,就是将所复制的7行复制到光标所在的下一行然后复制7份。如下图:

在这里插入图片描述

u:撤销上一次的操作,比如上图我们复制的,按u就可以撤销,如下图:

未按u之前的代码:

在这里插入图片描述

按u之后:

在这里插入图片描述

ctrl +r:对刚才的撤销进行撤销

我们在上面按完u之后在按ctrl+r,如下图:

在这里插入图片描述

所以u和ctrl+r是一对反操作,两者对立。

dd/ndd:对当前行,或者当前行在内的n行的内容进行剪切

如果只进行dd/ndd就是删除

没有dd操作之前的代码如下:

在这里插入图片描述

我们按dd,剪切了光标所在行:

在这里插入图片描述

如果是多行的话一样的操作就不过多演示。

shift g:将光标定位到文档最结尾

我们说了vim操作不用鼠标,那么一定我们代码很多行的话要找到结尾就单单靠j按键是非常不方便的,我们这里就引入了shift g指令:

我们现在光标位于第一行,如下图

在这里插入图片描述

然后我们进行shift g操作,直接定位到最后一行了,如下图:

在这里插入图片描述

gg:将光标定位到文档最开始

n shfit g:将光标定位到文档的指定行

shift 4:将光标定位到文档行的结尾

就是将光标定位到当前光标所在行的结尾:

我们现在光标位于第5行的开头位置,如下图:

在这里插入图片描述

然后我们shift 4,效果如下图:

在这里插入图片描述

shift 6:将光标定位到文档行的最开始

n w,n b:按照单词为单位,进行前后移动,w向后,b向前

shift ~:快速大小写切换

在这里插入图片描述

在这里插入图片描述

n r:替换光标所在的字符

先输入n r,然后输入要替换的字符

在这里插入图片描述

n x(小写x):行内删除,左侧->右侧

n X:行内删除,右侧->左侧

在这里插入图片描述

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

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

相关文章

更换ssl证书

更换ssl证书常用证书查看以及转换网址阿里云判断流量以及配置证书判断接入点阿里云控制台配置证书WAFAzure判断流量以及配置证书:判断接入点Azure配置证书CDNAPP GateWay常用证书查看以及转换网址 https://www.chinassl.net/ssltools/convert-ssl.htmlhttps://myss…

【java 高并发编程之JUC】高阶JUC特性总结

1 线程中断机制 1.1 什么是中断? 首先 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。 其次 在Java中没有办法立即停止一条线程,然…

TCP简单说明

前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文…

基于深度学习的个性化推荐系统实时化改造与升级

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2023年1月份热门报告合集ChatGPT的发展历程、原理、技术架构及未来方向《ChatGPT:真格基金分享.pdf》2023年AIGC发展趋势报告:人工智能的下一时代2023年…

ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践

ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践 如果已有有效的open ai的api key,则跳过本文(1)(2)(3)(4)&#x…

蓝牙 - 如何实现安全性

蓝牙技术在加密上做了很多工作,来保证你的数据安全。 这些年来,我们的许多电子设备都转向了使用无线技术进行连接。我们的鼠标、键盘、耳机和扬声器上不再有长长的纠缠的电线,而使用了简单方便的无线技术,科技进步改善了我们的生活…

亿级高并发电商项目-- 实战篇 --万达商城项目 十(安装与配置Elasticsearch和kibana、编写搜索功能、向ES同步数据库商品数据)

亿级高并发电商项目-- 实战篇 --万达商城项目搭建 一 (商家端与用户端功能介绍、项目技术架构、数据库表结构等设计) 亿级高并发电商项目-- 实战篇 --万达商城项目搭建 一 (商家端与用户端功能介绍、项目技术架构、数据库表结构等设计&#x…

2023美国大学生数学建模竞赛(美赛)思路代码

2023美国大学生数学建模竞赛(美赛)思路&代码报名时间节点比赛说明问题A(数据分析题):收干旱影响的植物群落(MCM)第一问第二问问题B(仿真建模题):重塑马赛…

MySQL面试精选-架构

1、说说MySQL 分层有哪些 从前面MySQL的架构图,我们可以看出MySQL的架构自顶向下大致可以分为网络连接层、数据库服务层、存储引擎层和系统文件层四大部分。那最主要的两层为Server 层和存储引擎层。 2、Server 层包含哪些模块 Server主要包括连接器、查询缓存、分析器、优…

第48讲:SQL优化之ORDER BY排序查询的优化

文章目录1.ORDEY BY排序查询优化方面的概念2.ORDER BY排序的优化原则3.ORDER BY排序优化的案例3.1.准备排序优化的表以及索引3.2.同时对nl和lxfs字段使用升序排序3.3.同时对nl和lxfs字段使用降序排序3.4.排序时调整联合索引中字段的位置顺序3.5.排序时一个字段使用升序一个字段…

ChatGPT 的出现意味着什么?

老于笔记02.16选中一天的美好,删除不满的忧虑。前言ChatGPT 的出现是自然语言处理技术的一个重要里程碑。它是 OpenAI 推出的一个基于 Transformer 模型的大型语言模型,被训练于大量的文本数据,以使其能够生成人类般的文本响应。ChatGPT 的出…

2023.2.6-2.12 AI行业周刊(第136期):住院

周末把父亲送到医院,安顿下来,这周还是决定做膝关节的手术了。 一辈子长期的劳累,加上前两年搬家时的辛苦,最终导致膝关节受损严重。 这两年来,走路每一步都很疼,纠结了很久,去了上海&#xf…

VS实用调试技巧

一.什么是BUG🐛Bug一词的原意是虫子,而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它"bug"。这是为什么呢?这就要追溯到一个程序员与飞蛾的故事了。Bug的创始人格蕾丝赫柏(Grace Murray H…

sql复习(视图、Top-N分析、其他数据库对象)

一、视图view 1.视图定义 视图是一种虚表。 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句。 视图向用户提供基表数据的另一种表现形式。 2.使用视图的好处 控制数据访问 简…

【离线数仓-1-数仓前期建设准备工作】

离线数仓-1-数仓前期建设准备工作离线数仓-1-数仓前期建设准备工作1.数仓概念1. 数据仓库概念2. 数据分类3.数据仓库总视图4.数据仓库项目需求分析5.数仓搭建技术基础分析1.项目技术如何选型:2.框架版本如何选型;3.服务器使用物理机还是云主机&#xff1…

C++:模板初阶(泛型编程、函数模板、类模板)

文章目录1 泛型编程2 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则3 类模板3.1 类模板的定义格式3.2 类模板的实例化1 泛型编程 所谓泛型,也就是通用型的意思。 在以往编写代码时,我们常常…

Greenplum的两阶段提交

注:本文章引自终于把分布式事务讲明白了! 在前面的文章中,我们了解了单机库中的事务一致性实现以及分布式事务中的两阶段提交协议。大多数分布式系统都是采用了两阶段提交塄来保证事务的原子性,Greenplum也是采用了两阶段提交&am…

ChatGPT直播课听不够?微软ATP教你系统化入门人工智能

爆火的ChatGPT直播课听不过瘾?系统化AI知识在哪学?国际TOP科技公司AI算法工程师团队来为你支招!▍微软AI算法专家助力系统化学习人工智能「微软ATP」Microsoft AI Talent Program是微软(亚洲)互联网工程院下属的提供专…

【测试】自动化测试02

努力经营当下,直至未来明朗! 文章目录前言 回顾 预告一、常见的元素操作1. 输入文本sendKeys()2. 点击click3. 提交submit(通过回车键提交)4. 清除clear5. 获取文本getText()6. 获取属性对应的值getAttribute()7. 查看title和ur…

(二十四)ATP应用测试平台——springboot集成fastdfs上传与下载功能

前言 本节内容我们主要介绍一下如何在springboot项目中集成fastdfs组件,实现文件的上传与下载。关于fastdfs服务中间键的安装过程,本节内容不做介绍。fastdfs是一个轻量级的分布式文件系统,也是我们文件存储中常常使用的组件之一&#xff0c…