Linux工具篇 之 vim概念 操作 及基础指令讲解

学校不大 创造神话

讲桌两旁 陨落的王

临时抱佛脚 佛踹我一脚

书山有路勤为径 游戏玩的很起劲

想要计算机学的好,我的博客列表是个宝

–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–

目录

一、vim的基本概念

二、vim的基本操作

三、vim命令模式命令集

四、vim底行模式命令集

五、完结撒❀


一、vim的基本概念

在介绍vim之前有些同学可能听过vi,vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

这篇博客我们先讲解vim基础的三种模式(其实vim一共有12种模式),分别是命令模式(command mode)、插入模式(insert mode)、底行模式(last line mode),各模式的功能区分如下:

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

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

● 插入模式(insert mode)

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

● 末行模式(last line mode)

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

二、vim的基本操作

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

$ vim test.c

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

[命令模式] 切换至 [插入模式]

● 输入a 光标向后一格进入插入模式

● 输入i  光标当前位置进入插入模式

● 输入o 光标回车到下一行进入插入模式

[插入模式]切换至[命令模式]

目前处于[ 插入模式 ] ,就只能一直输入文字,如果发现输错了字 , 想用光标键往回移动,将该字删除,可 以先按一下「 ESC 」键转到 [ 命令模式 ] 再删除文字。当然,也可以直接删除。
[命令模式]切换至[底行模式]
「shift + ; , 其实就是输入「 :
退出vim及保存文件,[命令模式]下,按一下「:」冒号键进入[底行模式],例如:
: w(保存当前文件)

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

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

三、vim命令模式命令集

● 插入模式

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

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

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

按「ESC」键。

● 移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的 vim 是用小写英文字母「 h 」、「 j 」、「 k 」、「 l 」,分别控制光标左、下、上、右移一格
按「 $ 」:移动到光标所在行的 行尾”
按「 ^ 」:移动到光标所在行的 行首”
按「 w 」:光标跳到下个单词的开头
「b 」:光标回到上个字的开头
按「 e 」:光标跳到下个字的字尾
按「 #l 」:光标移到该行的第# 个位置,如: 5l,56l
按[gg ]:进入到文本开始
按[shift g = G ]:进入文本末端
按「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 行文字。
「p 」:将缓冲区内的字符贴到光标所在位置。注意:所有与 “y” 有关的复制命令都必须与 “p” 配合才能完 成复制与粘贴功能。

替换

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

撤销上一次操作

「u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回 复。
「ctrl + r : 撤销的恢复

更改

「cw 」:更改光标所在处的字到字尾处
「c#w 」:例如,「 c3w 」表示更改 3 个字

跳至指定的行

「ctrl + g 」列出光标所在行的行号。
「#G 」:例如,「 15G 」,表示移动光标至文章的第 15 行行首。

● 其他查用指令

● Shift + `=~:大小写快速切换

● Shift + zz=ZZ:直接保存并退出

● Ctrl + z:挂后台,程序并没有关闭

● Ctrl + ww:在vs开多窗口下,进行光标的窗口切换

四、vim底行模式命令集

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

列出行号

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

跳到文件中的某一行

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

查找字符

「/ 关键字」 : 先按「 / 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 n 」会往后寻找到您要的关键字为止。
「? 关键字」:先按「 ? 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「 n 」会往前寻找到您要的关键字为止。
问题:/ 和 ?查找有和区别?操作实验一下

保存文件

「w : 在冒号输入字母「 w 」就可以将文件保存起来
离开vim
「q 」:按「 q 」就是退出,如果无法离开 vim ,可以在「 q 」后跟一个「 ! 」强制离开 vim。
「wq 」:一般建议离开时,搭配「 w 」一起使用,这样在退出的时候还可以保存文件。

● 批量化注释命令操作

该操作相对复杂,一共分为5步

● 1.Ctrl+v 进入视图模式

● 2.hjkl,滑动选中范围,支持Shift+g(G)文本全选,n+Shift+g 选中范围选到第n行

● 3.Shift+i 进入插入模式

● 4.//......(输入要批量化的操作)

● 5.Esc

● 其他常用指令

● !command(shell指令):不退出vim,可以在底行进行shell命令的执行,常用做函数查看,比如:!man 3 fflush

●vs filename(文件名):分屏,多文件操作

五、完结撒❀

如果以上内容对你有帮助不妨点赞支持一下,以后还会分享更多编程知识,我们一起进步。
最后我想讲的是,据说点赞的都能找到漂亮女朋友❤

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习笔记3

列表、表格与表单​ 列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能更快捷地获得相应的信息。 3.0 代码访问地址 https://gitee.com/qiangge95243611/java118/tree/master/web/day03 3.1 列表 ​ 列表大致可以分为3类…

怎么给字符串字段加索引?

怎么给字符串字段加索引? 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: …

如何实现直播声卡反向给手机充电功能呢?

在数字化时代的浪潮中,声卡作为多媒体系统的核心组件,扮演着声波与数字信号相互转换的关键角色。它不仅能够将来自各类音源的原始声音信号转换为数字信号,进而输出到各类声响设备,更能够通过音乐设备数字接口(MIDI)发出合成乐器的…

STM32点灯大师(点了一颗LED灯,轮询法)

配置操作: 一、使用CubeMX配置到大致的操作 1.1 选择芯片 1.2 选择引脚(根据电路图) 1.3 配置gpio口 1.4 配置系统 1.5文件项目操作 最后就是点击 二、点击CubeMX生成的代码,并且修改代码 2.1 看看效果 2.2 写代码

架构师技能:技术深度硬实力透过问题看本质--深入分析nginx偶尔502错误根因

以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来。当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升。励志做架构师的…

Linux|awk 特殊模式“BEGIN 和 END”

引言 在本文[1],我们将介绍Awk的更多特性,特别是两个特殊的模式:BEGIN和END。 这些独特的功能在我们努力扩展和深入探索构建复杂Awk操作的多种方法时,将大有裨益。 实例 让我们从Awk系列的开篇回顾开始,回想一下&#…

2024抖音AI图文带货班:在这个赛道上 乘风破浪 拿到好效果

课程目录 1-1.1 AI图文学习指南 1.mp4 2-1.2 图文带货的新机会 1.mp4 3-1.3 2024年优质图文新标准 1.mp4 4-1.4 图文如何避免违规 1.mp4 5-1.5 优质图文模板解析 1.mp4 6-2.1 老号重启 快速破局 1.mp4 7-2.2 新号起号 不走弯路 1.mp4 8-2.3 找准对标 弯道超车 1.mp4 9…

DRF学习之三大认证

一、认证 1、自定义认证 在前面说的 APIView 中封装了三大认证,分别为认证、权限、频率。认证即登录认证,权限表示该用户是否有权限访问接口,频率表示用户指定时间内能访问接口的次数。整个请求最开始的也是认证。 (1&#xff…

Qt : 在QTreeWidget中添加自定义右键菜单

一、引言 如图,我们需要在一个QTreeWidget 控件中添加了自定义右键菜单。 二、思路 如何做到的呢,很简单。浅浅记录和分享一下。 继承QTreeWidget,定义一个子类CustomTreeWidget ,在重写contextMenuEvent 事件即可。 三、代…

基于 Spring Boot 博客系统开发(二)

基于 Spring Boot 博客系统开发(二) 本系统是简易的个人博客系统开发,为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。🌿🌿🌿 基于 Spring Boot 博客系统开发(一)&#x1f4…

PHP 错误 Unparenthesized `a ? b : c ? d : e` is not supported

最近在一个新的服务器上测试一些老代码的时候得到了类似上面的错误: [Thu Apr 25 07:37:34.139768 2024] [php:error] [pid 691410] [client 192.168.1.229:57183] PHP Fatal error: Unparenthesized a ? b : c ? d : e is not supported. Use either (a ? b : …

语音识别的基本概念

语音识别的基本概念​​​​​​​ ​​​​​​​ 言语是一种复杂的现象。人们很少了解它是如何产生和感知的。天真的想法常常是语音是由单词构成的,而每个单词又由音素组成。不幸的是,现实却大不相同。语音是一个动态过程,没有明确区分的…

Baidu comate智能编程助手评测

Baidu comate智能编程助手评测 作者:知孤云出岫 目录 一. 关于comate产品 二. 关于comate产品体验 三. 关于实际案例. 四. 关于baidu comate编程助手的实测体验感悟 五. …

如何快速申请SSL证书实现HTTPS访问?

申请SSL证书最简单的方法通常涉及以下几个步骤,尽量简化了操作流程和所需专业知识: 步骤一:选择适合的SSL证书类型 根据您的网站需求,选择最基础的域名验证型(DV SSL)证书,它通常只需验证域名所…

从 MySQL 到 ClickHouse 实时数据同步 —— Debezium + Kafka 表引擎

目录 一、总体架构 二、安装配置 MySQL 主从复制 三、安装配置 ClickHouse 集群 四、安装 JDK 五、安装配置 Zookeeper 集群 六、安装配置 Kafaka 集群 七、安装配置 Debezium-Connector-MySQL 插件 1. 创建插件目录 2. 解压文件到插件目录 3. 配置 Kafka Connector …

Profinet转Modbus网关接称重设备与1200PLC通讯

Profinet转Modbus网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Profinet转Modbus网关可提供单个或多个RS485接口,使用Profinet转Modbus网关将称重设备与西门子1200 PLC进行通讯,可以避免繁琐的编程和配…

XY_RE复现(二)

一,何须相思煮余年 0x55 0x8b 0xec 0x81 0xec 0xa8 0x0 0x0 0x0 0xa1 0x0 0x40 0x41 0x0 0x33 0xc5 0x89 0x45 0xfc 0x68 0x9c 0x0 0x0 0x0 0x6a 0x0 0x8d 0x85 0x60 0xff 0xff 0xff 0x50 0xe8 0x7a 0xc 0x0 0x0 0x83 0xc4…

YOLOv8+PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)

1.效果视频:YOLOv8PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)_哔哩哔哩_bilibili 资源包含可视化的输电线路缺陷检测系统,可识别图片和视频当中出现的五类常见的输电线路缺陷…

Virtualbox7.0.10--在虚拟机中安装Ubuntu20.04

前言 下载Virtualbox7.0.10,可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤,可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机,可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu20.0…

随机链表的复制

链接:138. 随机链表的复制 - 力扣(LeetCode) /*** Definition for a Node.* struct Node {* int val;* struct Node *next;* struct Node *random;* };*/struct Node* copyRandomList(struct Node* head) { //用cur记录head结点//创建新节…