Linux开发工具——vim

📝前言:

上篇文章我们讲了Linux开发工具——apt,这篇文章我们来讲讲Linux开发工具——vim

🎬个人简介:努力学习ing
📋个人专栏:Linux
🎀CSDN主页 愚润求学
🌄其他专栏:C++学习笔记,C语言入门基础,python入门基础,C++刷题专栏


目录

  • 一,什么是vim
  • 二,vim的五个常用模式
    • 1. 命令模式
      • 常用命令集
        • 1. 光标移动
        • 2. 文本编辑
        • 3. 查找与替换
    • 2. 底行模式
      • ZZ操作
    • 3. 插入模式
    • 4. 视图模式
    • 5. 替换模式
  • 三,vim配置
    • vim配置文件的注释

一,什么是vim

在Windows下,我们写代码通常依靠如:vs2022vs2022是一个集代码编辑,代码调试,代码编译…为一身的集成开发环境
而在Linux下,这些功能通常是分开使用不同的工具来完成的。vim就是一一个多模式编译器

在这里插入图片描述
操作很多,我们主要掌握几个常用的!

进入vim的方式:vim 文件名 [+ n]n可选,跳转到第n行。

二,vim的五个常用模式

vim共有12种模式,但是,我们先掌握vim的五个常用模式:

  • 命令模式(用于执行各种操作指令),直接Vim进入的普通模式
  • 插入模式(用于输入和编辑文本内容)
  • 底行模式(用于配置设定、文件操作)
  • 视图模式(用于对文本块进行选择、复制、删除等批量操作)
  • 替换模式(用于逐个或全部替换指定位置的字符)

在这里插入图片描述
命令模式是核心,任何模式回到命令模式都按Esc

打开vim,进入的默认是命令模式:
在这里插入图片描述

1. 命令模式

只有插入模式可以编辑,命令模式就是执行命令的地方。

常用命令集

1. 光标移动

以下大部分操作都可以在输入前先输入一个数字n代表移动n次,即:移动到第n个。

  1. 上下左右h:左,j:下,k:上,l:右
  2. 行间移动gg:移动到第一行, shift + g:移动到最后一行, n + shift + g:移动到第n行(按完n,再一起按shift + g
  3. 行内移动shift + $:该行结尾,shift + ^:该行开头
  4. 按单词移动w后一个单词,b前一个单词
2. 文本编辑

大多数删除都具有剪切效果,大多数也都可以前带n

  1. 复制yy
  2. 删除/剪切dd
  3. 粘贴p:在光标的下一行粘贴,P:在上一行粘贴
  4. 删除x:删除当前光标所在的字符,往右删,X:往左删
  5. 撤销u 撤销上一步操作;Ctrl + r 恢复被撤销的操作

注意:撤销操作:一旦退出文件编辑,就无法撤销。但只是保存,没有q退出文件编辑,都可以撤销。

3. 查找与替换
  • 查找:按 / 后输入要查找的内容,按回车键开始向后查找,按 n 查找下一个匹配项,按 N 查找上一个匹配项。(或者#:向上查找当前光标所在的单词)
  • 替换r :替换当前光标所在的字符(先按r,再输入新字符);R进入替换模式,之后输入的字符会逐个替换当前光标所在的字符,按 Esc 退出替换模式。
  • 大小写替换Ctrl + ~

2. 底行模式

输入shift + ;进入底行模式
输入:

  • w:保存当前⽂件
  • wq :存盘并退出vim
  • q!:不存盘强制退出vim(即如果有修改,不询问你是否保存,普通的q会询问)
  • set nu/nonu:设置(取消)行号,
  • ! 外部命令:无须退出vim,直接执行外部命令
  • %s /dst/src/[g/i]:用src替换dstg/i可选,g:全局替换,i忽略大小写替换
  • vs new_src:分屏操作,这时候,光标在哪里,就是对哪个文件操作。用ctrl +ww实现切换光标所在的屏幕

ZZ操作

在vim模式下连按ZZ(大写):保存当前文件并退出vim。相当于底行模式下输入wq

3. 插入模式

没什么好说的,编辑的地方
在这里插入图片描述
底下会有一个INSERT的标志,写完以后按Esc退出到命令模式,换到底行模式wq保存,或者直接ZZ保存并退出vim

4. 视图模式

Ctrl +v进入视图模式,主要用于区域选择,进行区域操作。
如,进行区域注释:

  1. 进入视图模式后,hjkl进行区域选择
  2. shift + i直接切换到插入模式
  3. 输入//,进行注释
  4. Esc回到命令模式,就会批量注释之前区域选择的行(相当于是在所选的行内都执行了输入//的那一行的操作)

上述操作一般用于插入数据,删除:

  1. Ctrl + v进入视图模式
  2. 选中要删除的内容
  3. d

5. 替换模式

R进入,进行批量化替换。

三,vim配置

vs2022这类编译器,会有代码补全,高亮等功能。但是vim如果想要实现这些功能需要自行配置。
vim在使用的时候会自动到用户的目录下搜索.vimrc配置文件,所以我们要配置的就是个人用户的.vimrc文件。(注意:安装vim的时候不会自动生成.vimrc文件,所以我们要touch ~/.vimrc,自己在个人用户目录下创建文件,然后进行配置)

配置vim,原⽣的配置可能功能不全,可以选择安装插件来完善配置(如实现代码自动补全的功能)

这里提供一个GIthub上自动配置vim的项目,如果网络不好clone不动的话,也可以考虑自己先下载zip到本地,然后上传云服务器。

在这里插入图片描述
有这个现实以后,代表你安装好了。这时候你就可以自行安装自己需要的插件了。(根据GIthub上的步骤,配置文件)

vim配置文件的注释

Vim 配置文件.vimrc中使用 " 进行注释。

推荐一篇文章:vim从入门到牛逼


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

在 Langflow 中构建灵活的自定义组件:从基础到高级实践

本文深入探讨了如何在 Langflow 平台中创建功能丰富的自定义组件。通过详细的目录结构解析、分步实现指南和多个实战案例,帮助开发者掌握利用 Python 生态扩展低代码平台的方法,打造高效的数据处理流程。 理解组件架构设计 自定义组件是在 Langflow 中创…

stm32+LTR-390UV使用教程含源码

stm32LTR-390UV使用教程含源码 (csdn首发源码),本人大四学生,考研已上岸,毕设做的全向轮小车,这个是环境检测部分LTR-390UV使用教程 文章目录 目录 文章目录 前言 一、硬件准备与连接 二、数据手册 1.…

【嵌入式系统设计师】知识点:第2章 嵌入式系统硬件基础知识

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…

Java 项目灰度发布的详细实现与实践

前言 灰度发布是一种通过逐步将新功能或更新推向一部分用户来降低上线风险的技术。本文将详细介绍如何在 Java 项目中实现灰度发布,并提供相关的配置参数、代码示例以及 uml 图,帮助您更好地理解和应用这一技术。 一、灰度发布的核心思想 灰度发布的核…

使用 Swift 实现 LRU 缓存淘汰策略

📌 实现思路 一、核心目标 我们要实现一个缓存类: 支持通过 get(key) 获取缓存的值;支持通过 put(key, value) 写入缓存;缓存容量有限,当超过容量时要淘汰最久未使用的元素。 二、为什么用「哈希表 双向链表」 功…

C#中为自定义控件设置工具箱图标

在C#中为自定义控件设置工具箱图标,可通过以下步骤实现: ### 步骤说明: 1. **准备图标文件** - 创建或选择一个16x16像素的位图(.bmp)文件,建议使用透明背景以确保清晰显示。 2. **添加位图到项目** -…

Linux数据库:【数据库基础】【库的操作】【表的操作】

目录 一.数据库基础 1.1什么是数据库 1.2基本使用 1.2.1连接服务器 1.2.2服务器,数据库,表关系 1.2.3使用案例 1.2.4数据存储结构 ​编辑 1.3MySQL架构 1.4SQL分类 1.5存储引擎 1.5.1什么是存储引擎 1.5.2查看存储引擎 ​编辑 1.5.3存储引擎…

CKPT文件是什么?

检查点(Checkpoint,简称ckpt)是一种用于记录系统状态或数据变化的技术,广泛应用于数据库管理、机器学习模型训练、并行计算以及网络安全等领域。以下将详细介绍不同领域中ckpt检查点的定义、功能和应用场景。 数据库中的ckpt检查点…

Redis的公共操作命令

目录 1.Key操作命令1.1 keys *1.2 exists <key]>1.3 type <key>1.4 del <key>1.5 unlink <key>1.6 ttl <key>1.7 expire <key> <秒数>1.8 move <key> <index> 2.库操作命令2.1 select <index>2.2 dbsize2.3 flush…

【LLM】使用MySQL MCP Server让大模型轻松操作本地数据库

随着MCP协议&#xff08;Model Context Protocol&#xff09;的出现&#xff0c;使得 LLM 应用与外部数据源和工具之间的无缝集成成为可能&#xff0c;本章就介绍如何通过MCP Server让LLM能够直接与本地的MySQL数据库进行交互&#xff0c;例如新增、修改、删除数据&#xff0c;…

【C++】从零实现Json-Rpc框架(2)

目录 JsonCpp库 1.1- Json数据格式 1.2 - JsonCpp介绍 • 序列化接口 • 反序列化接口 1.3 - Json序列化实践 JsonCpp使用 Muduo库 2.1 - Muduo库是什么 2.2 - Muduo库常见接口介绍 TcpServer类基础介绍 EventLoop类基础介绍 TcpConnection类基础介绍 TcpClient…

语文常识推翻百年“R完备、封闭”论

​语文常识推翻百年“R完备、封闭”论 黄小宁 李四光&#xff1a;迷信权威等于扼杀智慧。语文常识表明从西方传进来的数学存在重大错误&#xff1a;将无穷多各异数轴误为同一轴。 复平面z各点z的对应点zk的全体是zk平面。z面平移变换为zk&#xff08;k是非1正实常数&#xf…

【Vue】 核心特性实战解析:computed、watch、条件渲染与列表渲染

目录 一、计算属性&#xff08;computed&#xff09; ✅ 示例&#xff1a; 计算属性-methods实现&#xff1a;在插值模块里&#xff0c;实现函数的调用功能 计算属性-computed的实现&#xff1a; 计算属性-简写&#xff1a; ✅ 特点&#xff1a; ⚠️ 与 methods 的区别…

二叉树 递归

本篇基于b站灵茶山艾府的课上例题与课后作业。 104. 二叉树的最大深度 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&…

与 AI 共舞:解锁自我提升的无限可能

与 AI 共舞&#xff1a;解锁自我提升的无限可能 在数字化浪潮的汹涌冲击下&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度重塑着世界的每一个角落。从日常生活的点滴便利到复杂工作的高效推进&#xff0c;AI 的力量无处不在。然而&#xff0c;面对 AI 的强…

【网络安全论文】筑牢局域网安全防线:策略、技术与实战分析

【网络安全论文】筑牢局域网安全防线:策略、技术与实战分析 简述一、引言1.1 研究背景1.2 研究目的与意义1.3 国内外研究现状1.4 研究方法与创新点二、局域网网络安全基础理论2.1 局域网概述2.1.1 局域网的定义与特点2.1.2 局域网的常见拓扑结构2.2 网络安全基本概念2.2.1 网络…

MoE Align Sort在医院AI医疗领域的前景分析(代码版)

MoE Align & Sort技术通过优化混合专家模型(MoE)的路由与计算流程,在医疗数据处理、模型推理效率及多模态任务协同中展现出显著优势,其技术价值与应用意义从以下三方面展开分析: 一、方向分析 1、提升医疗数据处理效率 在医疗场景中,多模态数据(如医学影像、文本…

[ctfshow web入门] web4

前置知识 robots.txt是机器人协议&#xff0c;在使用爬虫爬取网站内容时应该遵循的协议。协议并不能阻止爬虫爬取&#xff0c;更像是一种道德规范。 假设robots.txt中写道 Disallow: /admind.php&#xff0c;那我就暴露了自己的后台&#xff0c;这属于信息泄漏&#xff0c;攻击…

innodb如何实现mvcc的

InnoDB 实现 MVCC&#xff08;多版本并发控制&#xff09;的机制主要依赖于 Undo Log&#xff08;回滚日志&#xff09;、Read View&#xff08;读视图&#xff09; 和 隐藏的事务字段。以下是具体实现步骤和原理&#xff1a; 1. 核心数据结构 InnoDB 的每一行数据&#xff08…

coding ability 展开第九幕(位运算——进阶篇)超详细!!!!

文章目录 前言丢失的数字两整数之和只出现一次的数字II消失的两个数字总结 前言 上一篇博客&#xff0c;我们已经把位运算的基础知识&#xff0c;以及基本运算都掌握啦 上次的习题还是让人意犹未尽&#xff0c;今天我们来尝试一下难一点的题目 位运算熟练起来真的让人觉得做题是…