Linux之vim编辑器的使用

news2025/1/10 23:54:51

目录

一、vim是什么?

试验1: 

二.命令模式继承用法:

vim命令模式的快捷键:

光标移动:

vim文本复制相关操作:

vim文本编辑操作:

三.末行模式命令用法

部分快捷键:

四.vim编辑器的配置原理 

 


一、vim是什么?

        vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

今天我们来讲解vim的三种模式(其实有好多模式,目前掌握这3种即可):

分别是命令模式、插 入模式和底行模式,各模式的功能区分如下:

1.命令模式(Normal mode) :控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

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

3.末行模式(last line mode) :文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模 式。要查看你的所有模式:打开vim,底行模式直接输入

如下是vim使用的按键详解:

试验1: 

       注:如上图当前目录下为空,输入指令:vim test.c(文件名),操作系统会对该指令进行判断,若是test.c文件已存在,则使用vim编辑器打开;若是该文件不存在,会先创建出一个test.c的文件,然后将该文件放入编辑器打开。

指令输入完毕后,就会进入vim编辑器界面了:

进入vim后,该编辑器的默认模式就是命令模式,在此模式下,不能进行代码或数据的输入,通过此模式可进行与另外两种模式的切换(该模式的作用之一是做切换)。

之后,键盘点击 “i” 键便可从命令模式转换为插入模式。

插入模式:

上面红框中的INERT标记就代表了当前模式处于插入模式,可以随意的输入或者删除任何内容。

        如上图,输入完毕后需要再转换为命令模式,只需要按 “Esc” 键即可;此外插入模式并不能转换成末行模式 !

插入模式-->命令模式后,在命令模式下,按“shif+:(冒号)”组合键可以从命令模式切换为末行模式,如下图: 

在末行模式下,我们可将写过的代码进行保存,退出——输入wq即可。

使用编辑完成代码后,可用cat指令查看代码:

 

二.命令模式继承用法:

命令模式的意义:提高编辑代码的效率 

vim命令模式的快捷键:


shift + 4                        表示光标会定位在当前行的最右侧
shift + 6                        表示光标会定位在当前行的最左侧
shift + g                        表示光标会定位在整个文件的最后一行的首字符                                  gg                                 表示光标定位在整个文件的首行的首字符                                            w                                  光标向后按照单词移动                                                                         b                                  光标向前按照单词移动
n+shift +g(一起按)        表示光标会跳转到指定行,n表示的是行号

光标移动:


  h键:        左边                j键:                  下边                                                                              k键:        上边                I(不是i) 键:       右边            (这四个键和aswd功效相同 左下上右)
  ctrl+r:表示撤销操作取消                                                                                                          

vim文本复制相关操作:

yy                                表示复制当前行操作                nyy=1yy
p                                  表示在当前行黏贴操作            np=1p

nyy                              表示对光标当前行及其下面共n行进行复制操作                                    np                                表示在当前行及其下面共n行进行粘贴操作

u键:                           取消撤销操作

dd                                 表示删除光标所在行 ,默认 dd=1dd
ndd                               表示删除光标所在行开始及其下面共n行操作
ndd+p                           表示会在光标处及其以下共删除的n行后,再将删除的那n行给粘贴                                         上去——剪切操作

vim文本编辑操作:

1.shift+~                     按住shift,并一直去摁波浪键,就可以转换英文大小写了

2.shift + r键                使用后,就可以批量化替换光标处及其后面的内容 (replace)
3.按r键                       只能替换光标处的一个字符
4.按x键                       删除当前行所在光标处的后面一个字符一直按可以一直删,但仅限于                                       该行,不会删除下一行或者上一行内容


5.按X键                     删除当前行所在光标处的前面一个字符,一直按可以一直删,但仅限于                                    该行,不会删除下一行或者上一行内容


6.nx键                       删除当前行所在光标处的后面 n 个字符 但仅限于该行
7.nX键                      删除当前行所在光标处的前面 n 个字符 但仅限于该行 


三.末行模式命令用法

部分快捷键:

1.set nu: 给文件添加行号;

2.取消vim文件的行号: set nonu

3.分屏操作:vs [文件名称]

4.在多个屏幕下,光标跨屏快捷键:ctrl+w+w

无论你分多少屏幕,光标只有一个!!!;光标的意义: 当前选中的行(编辑位置)或者屏幕

5.强制快捷键:“ ! ” ,当在末行模式下想要退出vim时,使用wq不管用,在wq后面加上“ ! ”即可强制退出。


6.替换单词:%s/printf/cout/g        (将全文所有的printf替换为cout)

使用vs指令后的结果: 


四.vim编辑器的配置原理 

我们使用的vim编辑器是初始型的,用起来相当不方便,但我们可以给vim编辑器配置一个.vimrc的文件,在该文件中写入特定的配置语句即可改变vim编辑器的设置。

在该用户的目录下新建一个.vimrc文件: 

然后使用vim打开该文件,并从网上找一些vim的配置语句进行添加:

这是我自己配置的一些简单的vim设置,有兴趣的同学可以再自行多加内容。 

保存.vimrc文件后,随便打开一个代码文件,如下,即vim配置成功:

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

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

相关文章

Hive SQL语句的正确执行顺序

关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢&#x…

智能结构诊断器:建筑结构健康的守护者

近年来,接二连三的自建房坍塌,超高层建筑震动,让建筑的健康和安全性成为了人们关注的焦点。为了确保建筑物的长期稳定性和安全性,迫切需要高效且准确的方法来监测结构的健康状况。智能结构诊断器的出现,让建筑结构监测…

大数据如何助力营销(5)活动复盘

在市场竞争日益激烈的今天,营销活动已经成为吸引用户、提升品牌影响力、增加销售转化的重要手段。然而,一场营销活动在举办后,往往难以评估活动的效果,而大数据技术将从方方面面、科学有效地复盘活动,并为下一次举办活…

chatgpt赋能Python-python_kbhit

Python kbhit - 帮助您掌握实时按键输入 如果您需要使用实时按键输入来控制您的Python程序,那么你需要知道的是Python kbhit。kbhit是一种允许用户实时按键输入并立即响应的技术。本文将介绍Python kbhit的用途和用法,并探讨实时输入如何帮助您掌控程序…

AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路

本教程收集于:AIGC从入门到精通教程 AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路 本篇没有什么长篇大论,全部都是实用心得总结。接下来,我们将分享关于Midjourney绘画AI的实用心得总结,包括构图指令结构、常用指令、操作技巧、常用风格词汇和构图词汇。 如果…

手机号码在网时长 API 实现广告投放和精准营销案例分析

引言 手机在网时长是指用户在移动网络上的在线时间,包括用户接入网络的时间和断开网络的时间。手机在网时长 API 是一种提供手机在网时长数据的编程接口,为开发者和服务提供商提供了获取和利用这些数据的能力。 本文旨在深入探讨手机在网时长 API 的技…

计算机视觉——day95 PANet:基于样本原型对齐的Few-Shot图像语义分割

PANet:基于样本原型对齐的Few-Shot图像语义分割 1. Introduction2. Related workFew-shot segmentation 3. Method3.1. Problem setting3.2. Method overview3.3. Prototype learning(原型学习)3.4. 非参数度量学习3.5. 原型对准正则化(PAR) 4. Experime…

MySQL高级 之 explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序…

前端安全和防护:如何保护网站和用户信息的安全

第一章:引言 在当今数字化时代,随着互联网的飞速发展,网站已成为人们获取信息和进行交流的主要渠道。然而,随之而来的是对网站安全的日益关注。作为前端开发者和网站管理员,我们有责任确保用户的信息和网站的安全。本…

可分析表情和情绪的轻量化眼镜:Emteq OCOsense解析

近年来,越来越多VR头显开始尝试结合眼球追踪、手势追踪等生物识别技术,甚至在一些VR社交场景,也在探索将Avatar与面部识别功能结合。可以想象,未来生物识别与AR/VR等穿戴技术的关系将越来越紧密,尽管现阶段相关硬件在体…

Jenkins安装插件教程 牢记 Jenkis安装插件(plugin)的两种方法

目录 jenkins在线安装组件(plugin) jenkins离线安装组件(plugin) 前言:在jenkins学习使用或使用的过程中,由于网络的问题,在选择安装插件的时候,会出现某些插件安装失败。这是需要…

Word控件Spire.Doc 【列表】教程:在 Word 文档中插入列表

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

【MaxCompute】基于Package跨项目访问资源实践

背景 目前随着公司业务的不断扩展,各个业务线的数据也越来越多,如果所有数据都集中管理比较错综复杂。MaxCompute的跨项目访问资源比较适合这样的场景。每个业务线创建对应的project,自行管理数据。如果有需要访问其他业务线数据的诉求&…

python3 爬虫相关学习6:html 和 css 简要回顾

因为要学爬虫,需要了解下html内容,我之前大概看过,这算是回顾下 以下html简单回顾内容,跟着这个地址的教程看了一遍,感谢 https://www.w3school.com.cn/html/html_jianjie.asp 下面是笔记 目录 1 html 2 常用标签…

文件缓冲区概念和磁盘的存储原理以及软硬链接

目录 缓冲区 缓冲区执行概念 C语言缓冲区存在于FILE结构体中 用户缓冲区刷新到OS缓冲区的策略 发生重定向 redir未重定向。 redir重定向。 磁盘的存储原理 细讲: Inode table Date block Inode bitmap Block bitmap Group Descriptor Table super Block 在目录…

脑机接口科普0020——是否鸡娃

本文禁止转载!!!! 现在有很多人开始给小孩早教,鸡娃,幼儿园就开始学英语,小学就开始学初中的内容,初中就开始学高中的内容。高中后开始拼命的做卷子,准备考大学,考完大学放纵。大学毕业后失业。 关于是否…

Matlab进阶绘图第21期—三角方块热图

三角方块热图,顾名思义,就是仅保留方块热图数据矩阵的上三角或下三角部分。 三角方块热图简单明了,通过不同颜色、不同大小的圆形表示数据的大小,可以更加直观地对矩阵数据进行可视化表达。 本文使用自制的trisquareheatmap小工…

ERROR: slow sql .. millis.

问题现象 运行过程中,查询页面报错,如下图: 404 NOT FOUND 排查日志,如下图: 查看数据库: 解决办法 在关联字段上添加索引,查询正常。

Linkage Mapper之Pinchpoint Mapper功能解析(含实际案例分析)

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 白尾兔(Lepus townsendii)的Pinchpoint映射器输出和栖息地浓集区效果图: 图片来源地址 <

【CANN训练营0基础赢满分秘籍】应用开发深入讲解→DVPP

1 数据预处理概述 1.1 典型使用场景 受网络结构和训练方式等因素的影响&#xff0c;绝大多数神经网络模型对输入数据都有格式上的限制。在计算视觉领域&#xff0c;这个限制大多体现在图像的尺寸、色域、归一化参数等。如果源图或视频的尺寸、格式等与网络模型的要求不—致时…