Linux编辑器---vim的使用

news2024/11/20 21:27:45

       Vim是一个高度可配置的文本编辑器,它是操作Linux的一款利器,旨在高效地创建和更改任何类型的文本。这款编辑器起源于"vi",并在此基础上发展出了众多新的特性。Vim被普遍推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。

       对于程序员来说,Vim特别受欢迎,因为它具有代码补全、编译及错误跳转等方便编程的功能。此外,其可定制性也使得它可以根据用户的需求进行个性化设置。同时,由于Vim的稳定性以及持续的开发,使它变得越来越好,越来越符合用户的需求,所以,接下来我们开始对vim进行学习。


一、vim的基本概念

       我们今天分享vim的三种模式(其实有好多模式,目前掌握这3种即可);分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

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

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

2.插入模式(Insert mode)

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

3.未行模式(last line mode)

       文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+:即可进入该模式。

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


二、vim的基本操作

       在系统提示符号输入vim及文件名称后,如输入vim test.c进入vim,就进入vim全屏幕编辑画面:



       不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。

正常模式]切换至[插入模式]

        输入a       输入i       输入o

       当终端左下角显示插入时,我们就可以编辑输入了。

[t插入模式]切换至[正常模式]

       目前处于[插入模式],就只能一直输入文字,如果发现输错了字想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

[正常模式]切换至[床行模式]

        「shift+:」,其实就是输入「:」

退出vim及保存文件

在[正常模式]下,按一下「:」冒号键进入「Last line mode」

例如:

        :w(保存当前文件)

        : wq(输入「wq」,存盘并退出vim)

        :q!(输入q!,不存盘强制退出vim)


三、vim正常模式命令集

插入模式

       按i切换进入插入模式「 insert mode」,按"T"进入插入模式后是从光标当前位置开始输入文件;

       按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

       按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

从插入模式切换为命令模式

       按「ESC」键。

移动光标

       vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母 「h」、「j」、 「k」 、「l」,分别控制光标左、下、上、右移一格,如下图:

        按「G」:移动到文章的最后

        按「$」:移动到光标所在行的“行尾”

        按「^」:移动到光标所在行的“行首”

        按「w」:光标跳到下个字的开头

        按「e」:光标跳到下个字的字尾

        按「b」:光标回到上个字的开头

        按「#l」:光标移到该行的第#个位置,如:5l、56l

        按「gg」:进入到文本开始

        按「shift+g」:进入文本末端

”由于vim编辑内容较短,大家可以自行练习下列操作“

        按「ctrl」+「b」:屏幕往“后”移动一页

        按「ctrl」+「f」:屏幕往"前“移动一页

        按「ctrl」+「u」:屏幕往"后”移动半页

        按「ctrl」+「d」:屏幕往“前“移动半页

删除文字

        「x」:每按一次,删除光标所在位置的一个字符

        「#x」:例如,「6x」表示删除光标所在位置的"后面(包含自己在内)“6个字符

        「X」:大写的X,每按一次,删除光标所在位置的“前面"一个字符

        「#X」:例如,「20x」表示删除光标所在位置的“前面"”20个字符

        「dd」 :-删除光标所在行

        「#dd」:从光标所在行开始删除#行

复制

        「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

        「#yw]:复制#个字到缓冲区

        「yy]:复制光标所在行到缓冲区。

        「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

        「pl」︰将缓冲区内的字符贴到光标所在位置。注意:所有与'y"有关的复制命令都必须与“p配合才能完成复制与粘贴功能

替换

        「r」:替换光标所在处的字符。

        「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

撤销上一次操作

        「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

        「ctrl+r」:撤销的恢复

更改

        「cw」:更改光标所在处的字到字尾处

        「c#w」:例如,「c3w」表示更改3个字

跳至指定的行

        「ctrl」 +「g」列出光标所在行的行号。

        「#G」:例如,「15G」,表示移动光标至文章的第15行行首。


四、vim末行模式命令集

       在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号

        「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。跳到文件中的某一行

        「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字4,再回车,就会跳到文章的第4行。

查找字符

        「/关键字」︰先按「」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按

        「n」会往后寻找到您要的关键字为止。

        「?关键字」︰先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止

保存文件

        「w」:在冒号输入字母「w」就可以将文件保存起来

离开vim

        「q]:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「」强制离开vim.。

        「wq」:一般建议离开时,搭配「w]一起使用,这样在退出的时候还可以保存文件。


结语:Linux编译器关于vim使用的分享到这里就结束了,没有进行展示的操作大家可以自行练习,希望本篇文章的分享会对大家的学习带来些许帮助,如果大家有什么问题,欢迎大家在评论区留言~~~ 

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

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

相关文章

【每日OJ—— 206. 反转链表(链表)】

每日OJ—— 206. 反转链表(链表) 1.题目:206. 反转链表(链表)2.方法讲解:2.1解法:2.1.1.图文解析2.1.2.代码实现2.1.3.提交通过展示 1.题目:206. 反转链表(链表&#xff…

WPS的JS宏基础(二)——其他

数据的输入和输出 InputBox(‘请输入内容’) //输入框 alert(‘a’) //简单消息框 MsgBox(‘b’) //进阶消息框 Debug.Print(‘c’) //立即窗口 Console.log(‘d’) //立即窗口 编写规则与注释 1.严格遵循大小写规范 2.每条语句之间用分号分隔 3.复合语句块(块中…

uni.getLocation() 微信小程序 线上获取失败

开发版,体验版,用此方法都可以正确获取定位,但是在小程序的线上,总是获取失败 参考:uni-app微信小程序uni.getLocation获取位置;authorize scope.userLocation需要在app.json中声明permission;小程序用户拒绝授权后重新授权-CSDN博客 uniapp 中的 uni.…

[sd_scripts]之fine_tune

https://github.com/kohya-ss/sd-scripts/blob/main/docs/fine_tune_README_ja.mdhttps://github.com/kohya-ss/sd-scripts/blob/main/docs/fine_tune_README_ja.md fine-tune微调是指使用图像和文本对来训练模型,不包括lora、textual inversion和hypernetwork。 …

JavaFX03(首页搭建)学生管理业务逻辑老师管理登录注册

数据库脚本 --创建学生管理系统 create database db_school; --使用当前数据库 use db_school; --创建学生表 create table tb_stu(sid int primary key identity(1,1),sname varchar(50),spwd varchar(50),ssex varchar(10),sage int,shobby varchar(100),saddress varchar(1…

STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常,烧录到自己打的板子就遇到了芯片烧录一次后,再次上电无法烧录的问题。 遇到问题需要从以下5点进行分析。 首先看下开发板的原理图 1.BOOT0需要拉高。 2.NRST脚在开发板上是悬空的。这里我建议大家…

前端 a链接 如何实现下载功能

目录 前言 标签 download a 标签链接下载的实现 1. 整体流程 2. 实现步骤 3. 类图 4. 代码示例 download 使用注意点 1. 同源 URL 的限制 2. 不能携带 Header Blob 转换 方法1. 用作 URL(blob:) 方法2. 转换为 base64(data:&…

[C++随笔录] 红黑树

红黑树 红黑树的特点红黑树的模拟实现红黑树的底层结构insert的实现实现思路更新黑红比例的逻辑insert的完整代码 insert的验证 源码 红黑树的特点 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是 Red或 Black。…

什么是Selenium?如何使用Selenium进行自动化测试?

什么是 Selenium? Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。   等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用…

实现跨域必须要知道的知识点

目录 同源策略 cookie iframe和多窗口通信 片段识别符 window.postMessage() LocalStorage Storage接口: 概述 属性和方法 Storage.setItem() Storage.getItem() Storage.removeItem() Storage.clear() Storage.key() storage 事件 同源策略 浏览器…

响应式少儿舞蹈培训网站模板源码

模板信息: 模板编号:6903 模板编码:UTF8 模板颜色:橙色 模板分类:学校、教育、培训、科研 适合行业:培训机构类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统&#xf…

从开源项目聊鱼眼相机的“360全景拼接”

目录 概述 从360全景的背景讲起 跨过参数标定聊透视变化 拼接图片后处理 参考文献 概述 写这篇文章的原因完全源于开源项目(GitHub参阅参考文献1)。该项目涵盖了环视系统的较为全貌的制作过程,包含完整的标定、投影、拼接和实时运行流程。该篇文章主要是梳理全…

深入探析隔离CAN收发器NSI1050-DDBR各项参数

NSI1050-DDBR是一个隔离的CAN收发器,可以完全与ISO11898-2标准兼容。 NSI1050-DDBR集成了两个通道的数字隔离器和一个高电平可靠性CAN收发器。 数字隔离器是基于Novosense电容隔离技术的氧化硅隔离。 高度集成的解决方案可以帮助简化系统设计并提高可靠性。 NSI1050…

【postgresql】CentOS7 安装pgAdmin 4

CentOS7 安装PostgreSQL Web管理工具pgAdmin 4。 pgAdmin 是世界上最先进的开源数据库 PostgreSQL 最受欢迎且功能丰富的开源管理和开发平台。 下载地址: pgadmin-4 download pgAdmin 4分为桌面版和服务器版。 我们这里部署服务器版本。 安装RPM包。 安装源 s…

使用IDEA工具处理git合并后的冲突的细节

使用 IDEA 处理合并(merge) 使用IDEA处理git合并如果遇到冲突,对冲突文件的不冲突部分需要处理吗?会自动将双方不冲突的部分合并吗? 比如如下,使用 IDEA 合并 branch1 到 branch2 分支,出现了冲突,如下图…

Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)

前言:在我的上一篇Linux博客我已经讲了基础指令和权限,现在我们来学习如何在Linux上运行和执行代码 一,yum yum是Linux中的软件包管理器,软件包是有人一些人写好的代码和程序作出软件包放到服务器上,我们使用yum就能…

DCMM咨询评估官方解答及各地补贴政策!

1、DCMM是什么? DCMM是国家标准GB/T 36073-2018《数据管理能力成熟度评估模型》(Data management Capability Maturity Model)的简称,是我国数据管理领域首个正式发布的国家标准,旨在帮助企业利用先进的数据管理理念和…

响应式青少年成长训练营培训网站模板源码

模板信息: 模板编号:28503 模板编码:UTF8 模板颜色:黑白 模板分类:学校、教育、培训、科研 适合行业:培训机构类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统&#x…

pyOCD

pyOCD 目录结构

Proteus仿真--基于数码管设计的可调式电子钟

本文主要介绍基于51单片机的数码管设计的可调式电子钟实验(完整仿真源文件及代码见文末链接) 仿真图如下 其中数码管主要显示电子钟时间信息,按键用于调节时间 仿真运行视频 Proteus仿真--数码管设计的可调式电子钟(仿真文件程…