【Linux】vim的基本操作与配置(上)
Hello everybody!今天我们要进入vim的讲解了。学会了vim,咱们就可以在Linux系统上做一些简单的编程啦!
那么废话不多说,咱们直接进入正题!

1.初识vim
vim是一款多模式的文本编辑器,可以对一个文件进行编辑操作。
它一共有三个模式:命令模式,底行模式,插入模式。
下面我将分别对这三个模式进行讲解。
2.vim基本操作
2.1三种模式的切换

首先我们先创建一个文件test.c,然后用vim打开它。

然后就来到如图所示的界面,此时默认处于命令模式,暂时无法键入信息。
如果想要键入信息,需要输入字符'i',就会从命令模式编程插入模式:

左下角变成INSERT,可以键入信息。敲ESC返回命令模式。
要从命令模式切换到底行模式,需要敲SHIFT+L右边的那个键。合起来的效果就是冒号(敲ESC退出):

此事左下角出现了一个冒号,然后敲wq可以退出vim。w的意思是保存,q的意思是退出。如果在打开vim时你没有进行任何的编辑操作,可以不用保存,直接在底行模式下敲q退出。


注意,底行模式不可以直接切换到插入模式,插入模式也不可以直接切换到底行模式。都需要切换到命令模式过渡。
3.用vim写一个简单的c语言代码

咱们的vim没有配置过,所以写代码会有些难受,不过没关系,先试着写一下!
先切换到插入模式写入代码,再切换到底行模式退出。


随后用gcc编译器编译我们刚写好的test.c文件(后缀一定要是.c,否则编译不通过)。编译完成后会产生一个a.out的可执行程序,执行该程序后就可以看到代码允许的结果啦!
4.vim基本操作
4.1set nu

在底行模式下输入set nu,可以显示行号。
4.2复制,粘贴,撤销,剪切操作
首先这些操作是在命令模式下完成的。
yy:复制光标所在行的内容。支持在yy前加数字,表示复制包括光标所在行在内的以下几行。
p:粘贴,支持在p前加数字,表示粘贴被复制内容的次数。
dd:剪切,同样支持在dd前加数字,往往与p配合使用。
u:撤销
CTRL+r:对撤销命令进行撤销。

例如:我把光标放在int那一行,敲4yy,此时左下角会出现4 lines yanked,表示4行被选中。
然后我把光标放到第4行,敲3p:

所得结果就是把我刚才复制的内容粘贴了3遍。

敲u撤销以上操作。
可是我刚撤销完就后悔了,可以敲CTRL+r来进行还原:


我在第三行敲2dd:

那么原来的第3,4行就被剪掉了,可以选择合适的位置敲p再粘贴回来。

5.光标定位
vim在没有配置的情况下不支持鼠标定位,所有的操作需要通过键盘来完成。
5.1 SHIFT+4


敲SHIFT+4光标可以迅速定位到当前行的末尾。
5.2 SHIFT+6


敲SHIFT+6,光标可以迅速定位到当前行的开头。
5.3gg
gg:迅速将光标定位到文本的最开始。


5.4SHIFT+g
SHIFT+g:迅速将光标定位到文本的结尾。


当然也支持n shift g(n为数字)。可以将光标定位到文本的第n行。
5.5 h j k l
除了上下左右键可以移动光标,h j k l键也可以移动光标,大家可以自己试一下。
当然也支持在前面加数字,和上文基本类似。
5.6 w b
w:以单词为单位进行光标后移。
b:以单词为单位进行光标前移。



6.大小写转换
在命令模式下,SHIFT按着不动,再按ESC下面的波浪号可以实现大小写转换。
例如:

第三行本来想小写的,但不小心弄成大写的了,可以通过次操作将这一行转换成小写。

7.行内局部删除
在命令模式下:
x:从光标位置向后删除一个字符;n+x:从光标位置向后删除n个字符;
shift+x:从光标位置向前删除一个字符;n+shift+x:从光标位置向前删除n个字符;
8.文本替换
在命令模式下:
方法一:
r+字符:对光标位置的字符进行替换。n+r+字符:对光标后n个位置的字符进行替换。

例如:输入3 r a,就会将前三个字符替换成a。
方法二:
shift+r:进行替换模式。
从此,每次键入的字符会对光标后面的字符逐一替换:


9.从命令模式进入插入模式的常用方法
i:光标不变,直接进入插入模式。
o:光标另起一行,进入插入模式。
a:光标向后挪动一个字符,进入插入模式。
10.总结
在这篇文章中,我已经给大家讲了大部分关于vim的操作,绝大部分是在命令模式下的。
在下一篇文章中我会把剩下的有关vim的操作讲完,并且教大家如何配置vim,让我们在vim上能够十分方便的写代码。
在学会vim后,就可以开使学习指令提权了!如果你是普通用户,安装或删除一些东西没有权限,可以将自己的指令权限提升到root。这部分的知识会在接下来的一两篇文章中讲解到位!
相关文章:
【Linux】vim的基本操作与配置(上)
Hello everybody!今天我们要进入vim的讲解了。学会了vim,咱们就可以在Linux系统上做一些简单的编程啦! 那么废话不多说,咱们直接进入正题! 1.初识vim vim是一款多模式的文本编辑器,可以对一个文件进行编辑操作。 它一共有三个模…...
幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤
幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏,它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获,你可以让…...
002集——统一码(Unicode)及ASCII码详解
统一码(Unicode),它也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以…...
下载、安装Jenkins
进入官网 下载Jenkins https://www.jenkins.io 直接点击Download 一般是下长期支持版 因为它是java写的,你要运行它(Jenkins.war)肯定要有java环境 有两种方式去运行它,一种是下载Tomcat(是很经典的java容器或者jav…...
python flask 魔术方法
魔术方法作用_init_对象的初始化方法_class_返回对象所属的类_module_返回类所在的模块_mro_返回类的调用顺序,可以找到其父类(用于找父类)_base_获取类的直接父类(用于找父类)_bases_获取父类的元组,按它们…...
2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)
2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024) 会议简介 2024年清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)将在中国丽江举行。本次会议主要围绕清洁能源、环境和智慧城市等研究领域,旨在为该研究领域的专家学者提供一个国际…...
Postgres与DynamoDB:选择哪个数据库
启动新项目时需要做出的决定之一是使用哪个数据库。如果您使用的是Django这样的包含电池的框架,那么没有理由再三考虑。选择一个受支持的数据库引擎,就可以了。另一方面,如果你使用像FastAPI或Flask这样的微框架,你需要自己做出这…...
【ELK】logstash快速入门
1.概述 1.1.什么是logstash? 之前我们聊了es,并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的,然后结合kibana对日志做一些可视化的工作。既然要收集日志,就面临着一个问题: 各个系统的…...
SQL sever2008中创建用户并赋权
一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一:使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句: SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…...
SpringBoot2-Jwt
1.官网 jwt.io/libraries 2.选jose4j pom <dependency><groupId>org.bitbucket.b_c</groupId><artifactId>jose4j</artifactId><version>0.9.4</version> </dependency> 3.创建jwt工具 public class JwtUtil {private stat…...
2、安全开发-Python-Socket编程端口探针域名爆破反弹Shell编码免杀
用途:个人学习笔记,欢迎指正! 目录 主要内容: 一、端口扫描(未开防火墙情况) 1、Python关键代码: 2、完整代码:多线程配合Queue进行全端口扫描 二、子域名扫描 三、客户端,服务端Socket编程通信cmd命…...
Python 套接字详解:与网络通信的温柔邂逅
网络世界,犹如一片无垠的海洋,充满了无限的可能性和无尽的探索。而在这个浩瀚的网络宇宙中,Python 语言以其简洁优雅、功能丰富而备受青睐。在 Python 的世界里,有一个神奇的工具,它就像是一座桥梁,将不同的…...
如何在Linux系统中安装MySQL
要在Linux系统中安装MySQL,您可以使用系统的包管理工具。以下是一些常见的Linux发行版的安装命令: 1. **Ubuntu/Debian:** bash sudo apt-get update sudo apt-get install mysql-server 2. **Fedora:** bash sudo dnf install mysql-server 3. **Cent…...
51单片机基础:定时器
1.定时器介绍 51单片机通常有两个定时器:定时器 0/1,好一点的可能有定时器3。 在介绍定时器之前我们先科普下几个知识: 1,CPU 时序的有关知识 ①振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或…...
高速接口PCB布局指南(五)高速差分信号布线(三)
高速接口PCB布局指南(五)高速差分信号布线(三) 1.表面贴装器件焊盘不连续性缓解2.信号线弯曲3.高速信号建议的 PCB 叠层设计4.ESD/EMI 注意事项5.ESD/EMI 布局规则 tips:资料主要来自网络,仅供学习使用。 …...
MySQL使用报错1045 - Access denied for user ‘root‘@‘localhost‘ (using password: YES)
问题描述 设备:MacBook Pro macOS Monterey 12.1 MySQL版本:8.0.27 arm-64 描述:在使用Navicat连接电脑本地的数据库时,发现连接不上了,报了个错误1045 - Access denied for user rootlocalhost (using password: YES)…...
UE4 C++创建摄像机摇臂和相机并且设置Transform
新建MyPawn C类 .h #include "GameFramework/SpringArmComponent.h" //SpringArm组件 #include "Camera/CameraComponent.h" //Camera组件class 工程名称_API AMyPawn : public APawn { //定义组件变量 public:UPROPERTY(VisibleAnywhere, BlueprintRead…...
<网络安全>《14 日志审计系统》
1 概念 日志审计系统是用于全面收集企业IT系统中常见的安全设备、网络设备、数据库、服务器、应用系统、主机等设备所产生的日志(包括运行、告警、操作、消息、状态等)并进行存储、监控、审计、分析、报警、响应和报告的系统。 日志审计系统是一种用于…...
嵌入式软件设计方式与方法
1、嵌入式软件与设计模式 思从深而行从简 软件开发,难的不是编写软件,而是编写功能正常的软件。软件工程化才能保证软件质量和项目进度,而设计模式使代码开发真正工程化,设计模式是软件工程的基石。 所谓设计模式就是对常见问题的…...
ELAdmin 前端启动
开发工具 官方指导的是使用WebStorm,但是本人后端开发一枚,最终还是继续使用了 idea,主打一个能用就行。 idea正式版激活方式: 访问这个查找可用链接:https://3.jetbra.in/进入任意一个能用的里面,顶部提…...
[特殊字符] 论文查重还在花钱?这个AI平台凭什么敢免费?一条给你讲透
各位正在跟论文死磕的朋友们,今天咱们不聊选题,不聊文献,聊一个每个毕业生都绑不开的刚需——查重。 你有没有算过一笔账?本科论文查一次少说三四十,硕士论文动辄上百,有些平台甚至标价两三百。一篇论文改…...
AI与地缘政治双重冲击下,内存市场产能大迁移与供应链危机
1. 风暴之眼:当AI狂潮撞上地缘断供如果你最近想给电脑加条内存或者换个固态硬盘,大概率会被价格吓一跳。这不仅仅是简单的“涨价”,而是整个存储市场的底层逻辑正在被两股巨力彻底重塑。一边是AI数据中心对高性能内存近乎贪婪的吞噬ÿ…...
电子围栏系统设计:基于基站定位的防疫隔离技术方案解析
1. 项目概述:电子围栏系统的核心逻辑与设计初衷在2020年初那场席卷全球的公共卫生事件中,如何有效管理居家隔离人员,防止疫情在社区内扩散,成了各国政府面临的共同难题。当时,我作为技术顾问,深度参与了一些…...
在Windows平台解锁iOS应用的全新体验:ipasim模拟器深度解析
在Windows平台解锁iOS应用的全新体验:ipasim模拟器深度解析 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 想象一下这样的场景:作为一名开发者,你收到一个紧急的iOS应用测试…...
CC Desktop:基于Claude Code CLI的桌面AI编程工作台深度解析
1. 项目概述:一个为AI编程而生的桌面工作台 如果你和我一样,每天大部分时间都泡在终端里,和Claude Code CLI打交道,那你肯定也经历过这种场景:一边开着终端窗口敲命令,一边还得在浏览器和代码编辑器之间来…...
R3nzSkin英雄联盟皮肤修改器:终极免费皮肤体验完整指南
R3nzSkin英雄联盟皮肤修改器:终极免费皮肤体验完整指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款专为《英雄联盟》玩家设计的开源内存修改工具࿰…...
Applite:用图形化界面轻松管理Mac软件的终极解决方案
Applite:用图形化界面轻松管理Mac软件的终极解决方案 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Mac上繁琐的软件管理而烦恼吗?Applite作为一…...
为什么92%的用户调不出正宗120胶片感?揭秘Midjourney底层色彩映射矩阵与胶片光谱响应偏差
更多请点击: https://intelliparadigm.com 第一章:胶片感的视觉本质与数字复现困境 胶片感并非单一参数可定义的视觉效果,而是由卤化银晶体随机分布、显影化学反应非线性响应、颗粒噪点的空间相关性以及动态范围压缩特性共同构成的模拟物理现…...
建筑消防防火分区专用钢质卷帘门
在现代建筑消防设计体系中,防火分区的科学划分与有效分隔,是控制火灾蔓延、减少人员伤亡与财产损失的核心环节。建筑消防防火分区专用钢质卷帘门,作为固定式防火分隔的重要配套设施,凭借稳定的耐火性能、可靠的启闭功能与强适配性…...
Kinovea运动视频分析:免费开源的专业动作量化工具终极指南
Kinovea运动视频分析:免费开源的专业动作量化工具终极指南 【免费下载链接】Kinovea Video solution for sport analysis. Capture, inspect, compare, annotate and measure technical performances. 项目地址: https://gitcode.com/gh_mirrors/ki/Kinovea …...
