【Linux】一篇文章教你快速上手vim

news2024/12/25 13:37:15

在这里插入图片描述

👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++和算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍


目录

  • 一、vim的三种模式
  • 二、命令模式切换到底行模式的常用按键
      • 2.1 保存与退出
      • 2.2 在底行模式下执行基本指令
      • 2.3 多个文件编辑窗口
      • 2.4 设置行号(vim环境的修改 )
  • 三、命令模式切换到编辑模式的常用按键
      • 3.1 进入编辑模式
      • 3.2 替换字符
  • 四、命令模式常用的按键
      • 4.1 上下左右移动光标的方法
      • 4.2 屏幕移动的方法
      • 4.3 光标在行内移动的方法
      • 4.4 光标在整个文本移动的方法
      • 4.5 查找的方法
      • 4.6 替换的方法
      • 4.7 删除/剪切的方法
      • 4.8 复制的方法
      • 4.9 粘贴的方法
      • 4.10 撤销的方法
  • 五、vim的配置
      • 5.1 自定义配置
      • 5.2 自动化配置

一、vim的三种模式

基本上vim共分3种模式,分别是命令模式、编辑模式与底行模式。这3种模式的作用分别是:

  • 命令模式(command mode

输入指令vim [文件]就可以直接进入命令模式了。在这个模式中,你是不能进行编辑操作的,但你可以使用【上下左右】按键来移动光标;你还可以使用vim的【删除、复制、粘贴】等指令来处理你的文件内容(后面会详细介绍)

在这里插入图片描述

  • 编辑模式(insert mode

当你在命令模式下想要编辑文件内容,你会发现它不会反馈到屏幕上。这时你只需要按下i后(按键有很多种,但是常用的是i),然后你就可以对文件进行编辑了。注意了,通常在Linux中,按下i键后,界面的左下方会出现【INSERT】或【REPLACE】的字样,这是提示你可以对文件进行编辑。而如果要返回命令模式,则需要按下【Esc】按键即可退出编辑模式。

在这里插入图片描述

  • 底行模式(command-line mode)

在命令模式中,只要你输入【: / ?】三个其中一个按键,就可以进入底行模式。你会发现左下角会有光标。在这个模式中(命令行模式)中,可以退出vim、还可以有设置行号、查找等操作(这些操作后面都会提到)

在这里插入图片描述

简单地说,我们可以将这三个模式关系用下面这幅图来表示

在这里插入图片描述

注意:命令模式可与编辑模式及底行模式切换,但编辑模式与底行模式之间不可互相转换

二、命令模式切换到底行模式的常用按键

2.1 保存与退出

  • :w - 保存编辑的文本内容

  • :q - 退出vim

  • :wq - 保存内容并退出(最常用

  • :q! - 强制退出,但是不会保存之前修改的内容

2.2 在底行模式下执行基本指令

  • :! command - 暂时退出vim到命令行模式下执行command的显示结果

以下是编译代码 + ls + 执行可执行文件的动图演示

在这里插入图片描述

2.3 多个文件编辑窗口

  • :vs [文件名] - 多个文件编辑窗口
  • ctrl + ww - 切换编辑窗口

在这里插入图片描述

2.4 设置行号(vim环境的修改 )

  • :set nu - 显示行号

  • :set nonu - 取消行号

三、命令模式切换到编辑模式的常用按键

3.1 进入编辑模式

在开头我说过,进入编辑模式有按键i(大写I也可以),接下来我为大家总结了其他进入编辑模式的按键:

i从目前光标所在处插入
I在目前所在行的第一个非空格符处开始插入
a从目前光标所在的下一个字符串开始插入
A从光标所在行的最后一个字符处开始插入
o在目前光标所在的下一行开始插入
O在目前光标所在的上一行开始插入

全记住肯定是不太可能的事,因此大家还是选一个记吧hh

3.2 替换字符

  • r - 只会替换光标所在的那一个字符一次

  • R - 替换完光标所在的字符后,光标会自动跳到下一个字符等待替换,按下Esc键就会停止 (本人认为:R比较常用)

  • shift + ~ 光标所在字符会进行大小写转换。(转换后光标会自动向后移)

四、命令模式常用的按键

4.1 上下左右移动光标的方法

h /光标左移
j / 光标下移
k / 光标上移
l / 光标右移

如果想要进行多次用的话,例如向下移动30行,可以使用30j或者30↓

4.2 屏幕移动的方法

Ctrl + f / 【Page Down】屏幕向下移动一页
Ctrl + b / 【Page Up】屏幕向上移动一页

4.3 光标在行内移动的方法

n + 空格n代表数字。按下数字后再按空格键,光标会向右移动n个字符
shift + $定位到当前行末尾
shift + ^定位当前行开头
w以单词为单位向右移动
b以单词为单位向左移动

4.4 光标在整个文本移动的方法

gg定位到整个文本的开头
shift +g定位到整个文本的最后一行的开头

4.5 查找的方法

/word向光标之下寻找名称为word的字符串
?word向光标之上寻找名称为word的字符串
n重复前一个查找操作。例如:一开始执行/word,按下n则会继续向下查找word
N反向进行前一个查找操作。例如:执行完/word后,按下N,则是向上查找

4.6 替换的方法

:n1,n2s/word1/word2/gn1n2行寻找word1,并将该字符替换成word2
:1,$s/word1/word2/g在第一行到最后一行寻找word1字符串,并将该字符替换成word2
:1,$s/word1/word2/gc在其基础上加上了询问

4.7 删除/剪切的方法

x删除光标下的字符
dd剪切 / 删除光标所在行
ndd删除 / 剪切光标后的n行(包括光标所在行)

4.8 复制的方法

yy复制光标所在行
nyy复制光标所在行的向下n行(包括光标所在行)

4.9 粘贴的方法

p(小写)粘贴到光标所在行的下一行

4.10 撤销的方法

u撤销
ctrl + u对撤销返回

五、vim的配置

5.1 自定义配置

我们发现,裸vim下写代码非常难受,没有行号、没有高亮、没有补全、没有缩进等功能。我们可以自己配置一个。

vim的配置文件在自己的家目录下,有一个 隐藏文件.vimrc(如果没有就自己创建一个),然后vim进入文件输入配置选项进行配置,保存并退出即可,配置在保存后会立即生效(提示:不建议给超级用户root做配置)

在这里插入图片描述

比如我可以配置以下功能:

  • set nu - 设置行号
  • set autoindent - 自动缩进
  • set cursorline - 突出显示当前行
  • 还有很多功能大家可以自行上百度搜索

在这里插入图片描述

配置完后,我们往后打开vim,就会有以上功能

在这里插入图片描述

注意:是在自己的家目录路径下创建.vimrc文件,这个配置只对当前用户生效

5.2 自动化配置

我们也可以直接copy别人的配置

以下有一个我认为比较好用的配置(只适合CentOs 7.x的用户)

  1. 复制指令:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh(不要在root下执行)
  2. 此时提示输入root密码

在这里插入图片描述

  1. 最后根据提示安装即可

在这里插入图片描述

最后的vim展示

在这里插入图片描述

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

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

相关文章

杰发科技AC7801——keil工程移植到IAR

0、简介 发现AC7801的代码只有keil工程的,IAR和Eclipse的代码只有一个例程,于是在从Keil移植到IAR时候遇到的问题记录下。 正常情况下,直接把keil的usr用户代码移植到iar的文件夹下面,删除原本的文件再添加新加进来的文件即可。…

COCO类别标签增加80

COCO类别标签增加80 import codecs import ospath H:/Dataset/COCO/train_pbr/000001/labels/ # 标签文件train路径 m os.listdir(path) # 读取路径下的txt文件 for n in range(0, len(m)):t codecs.open(H:/Dataset/COCO/train_pbr/000001/labels/ m[n], moder, encoding…

根据商品链接获取拼多多商品详情数据接口|拼多多商品详情价格数据接口|拼多多API接口

拼多多,作为中国最大的社交电商之一,为卖家提供了丰富的商品详情接口。这些接口可以帮助卖家快速获取商品信息,提高销售效率。本文将详细介绍如何使用拼多多商品详情接口,以及它的优势和注意事项。 一、拼多多商品详情接口概述 …

【Web】攻防世界 难度3 刷题记录(1)

目录 ①lottery ②ics-05 ③mfw ④simple_js ⑤fakebook 感觉自己对一些综合题的熟练度不太够,专项训练一下 ①lottery 抽奖赚钱,钱够9990000可买flag 随便输一串数字抓包,然后查看到一个post请求,api.php,题目里面有附件…

程序员的副业 IP 探索之路

大家好,我是破局初创合伙人伍六七,专注于分享 AI 编程,主业 Java 程序员,副业探索个人 IP。 在互联网 35 岁危机、全球经济下行以及 AI 对生产力的变革时代下,谁也不能保证 35 岁之后,当前的工作能不能保住…

Python 基础【五】--数据类型-序列【2023.11.24】

1.定义 Python 中的序列是一块可存放多个值的连续内存空间,所有值按一定顺序排列,每个值所在位置都有一个编号,称其为索引,我们可以通过索引访问其对应值。 list1 [Google, Runoob, 1997, 2000] list2 [1, 2, 3, 4, 5 ] list3…

数字图像处理基础-用通俗语言进行超详细的总结

目录 图像感知与获取 韦伯定理 马赫带效应 图像获取 图像的采样和量化 图像内插(重采样) 图像的表示与描述 像素间的关系 exercise:4-邻域连通区域标记 本文章讲解数字图像处理的基础,大部分内容来源于课堂笔记中 图像感…

OpenStack云计算平台-块存储服务

目录 一、块存储服务概览 二、安装并配置控制节点 1、先决条件 2、安全并配置组件 3、配置计算节点以使用块设备存储 4、完成安装 三、安装并配置一个存储节点 1、先决条件 2、安全并配置组件 3、完成安装 ​四、验证操作 一、块存储服务概览 OpenStack块存储服务(c…

cineSync 3.3新功能: 深入iconik集成、激光工具、OTIOZ支持等

cineSync 3.3为大家带来了灵活性和精准度,使连接审阅会话与iconik中的媒体管理和存储更加容易,并且引入了颜色配置文件以快速测试颜色配置,还有通过激光指针等新工具带来新的可能性。 在ftrack,我们意识到当今的远程创意工作流比以…

Linux 排查必看文件

目录 1. 登录日志 1.1 /var/log/wtmp 1.2 /var/log/btmp.* 1.3 /var/log/lastlog 1.4 /var/log/faillog 1.5 /var/log/secure 1.6 /var/log/auth.log 2. 系统日志 2.1 /var/log/cron.* 2.2 /var/log/syslog 2.3 /var/log/audit/audit.*log 3. 历史命令 3.1 ~/…

16.Python 多进程和多线程

进程是应用程序正在执行的实体,当程序执行时,也就创建了一个主线程。进程在创建和执行需要占用一定的资源,如内存、文件、I/O设备等。 线程是CPU使用的基本单元,由主线程创建,并使用这个进程的资源,因此线…

大模型能否生成搜索引擎的未来?

文|郝 鑫 编|刘雨琦 ChatGPT火爆之前,水面下,也有中国公司也在朝着智能助手的方向努力。夸克便是其中之一。在GPT风靡科技圈后,国内就开始陆续冒出一些大模型厂商。对当时夸克而言,做大模型毋庸置疑&am…

3.2 Windows驱动开发:内核CR3切换读写内存

CR3是一种控制寄存器,它是CPU中的一个专用寄存器,用于存储当前进程的页目录表的物理地址。在x86体系结构中,虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的,页目录表存储了页表的物理地址,而页表…

马克思主义基本原理课后题答案

吐血整理马原word版课后题答案,大家可以自行修改,持续更新中... 【限于篇幅原因,需要的同学可以点赞收藏后👍,扫码下方的公众号,回复相应关键词(马原)自行领取⭐~】

Hive内置表生成函数

Hive内置UDTF 1、UDF、UDAF、UDTF简介2、Hive内置UDTF 1、UDF、UDAF、UDTF简介 在Hive中,所有的运算符和用户定义函数,包括用户定义的和内置的,统称为UDF(User-Defined Functions)。如下图所示: UDF官方文档…

一站式企业快递管理平台使用教程

因公寄件在企业中重要性的提升,催生出了企业快递管理平台。为什么这么说呢? 随着经济和快递行业的发展,因公寄件在企业中成了一件“常事”,寄文件合同、发票、节假日慰问品、样品等等,这种情况之下,因公寄件…

需求变更导致估算不精准 6大措施

需求变更可能导致估算不精准、项目成本增加、进度延迟等问题,如果不能准确地估算项目,往往会造成资源浪费和开发效率的降低,因此亟需解决因需求变更导致地估算不精准的问题。 一般来说,主要是从以下6个方面入手解决: 1…

智驾芯片全矩阵「曝光」,这家企业的车载品牌正式官宣

随着汽车智能化加速,智能驾驶芯片格局逐渐清晰。 针对L0-L2,业内基本采用智能前视一体机方案;要实现高速NOA、城市NOA等更为高阶的智驾功能等,则基本采用域控制器方案。从前视一体机至域控,再逐步演进到舱驾一体、中央…

功率半导体器件CV测试系统

概述 电容-电压(C-V)测量广泛用于测量半导体参数,尤其是MOS CAP和MOSFET结构。MOS(金属-氧化物-半导体)结构的电容是外加电压的函数,MOS电容随外加电压变化的曲线称之为C-V曲线(简称C-V特性),C-V 曲线测试可以方便的确…

缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…