系统编程--VIM特辑

这里写目录标题

  • vim
    • 三种工作模式
    • 进入文本模式的快捷键
    • 在命令模式下进行文本编辑
    • 删除快捷键
    • 复制粘贴
    • 查找替换
      • 查找
      • 替换
    • vim其他操作
  • vim打造简易IDE

vim

三种工作模式

在这里插入图片描述

具体可见第二章对vim的详细介绍

需要注意的是,在末行模式下执行完一次命令,就可以直接回到命令模式
或者不想执行任何末行命令,直接“一”次ESC也可以回到命令模式,按两次可以较快的返回到命令模式

进入文本模式的快捷键

在这里插入图片描述

在命令模式下进行文本编辑

在这里插入图片描述
修正:gg 和 G 分别是跳转到整个文件的开头和末尾

注意:许多操作都是在命令模式下完成·,且操作完成之后,不会改变模式

删除快捷键

在这里插入图片描述
修正:V改为小v,同时可以使用上下左右键来进行区域选中,且再次按小v即可取消可视模式

复制粘贴

在这里插入图片描述
复制一个区域:用v可视模式进行选中,之后y,就复制了,然后p粘贴就可以
复制一行:如上图,yy,然后p,但是注意粘贴的时候他会向下换一行进行粘贴,P是向上一行进行粘贴
复制多行:Nyy,之后p粘贴

补充:实际上上面的删除操作做完之后,可以用p粘贴回来,这也说明Linux系统中所谓的删除,实际上是剪切

查找替换

查找

在这里插入图片描述
第一种场景,就是带着目标关键字查找,
命令模式下,按“/”来到底行命令模式,之后输入欲搜索的关键字,回车(注意要敲回车),然后就会查找到当前打开文档的关键字位置,按n会检索下一个

第二种场景,就是查找看到的内容,比如要查看一个代码中下一个i在哪里
我们先将光标放在目标单词上任意位置,之后按*进行检索下一个

替换

在这里插入图片描述
其中较为实用的是通篇替换以及指定行的替换

vim其他操作

在这里插入图片描述
补充:
在分屏时,
:q是退出当前光标所在的分屏
:qall是退出所有分屏

在末行模式可以执行shell命令,
:!命令
执行之后,会回到shell终端进行命令结果的输出,然后按回车会回到vim中,我们可以接着执行shell命令或者其他操作

vim打造简易IDE

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

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

相关文章

企业进行股权众筹的时候要注意哪些问题?

1. 目标与风险 首先,企业要明确众筹的目标和期望。股权众筹不仅是为了筹集资金,更是为了扩大人脉、增加品牌曝光度。因此,企业在发起众筹时,应制定详细的计划和目标,并对可能出现的风险进行充分评估。例如,…

编写.NET的Dockerfile文件构建镜像

创建一个WebApi项目,并且创建一个Dockerfile空文件,添加以下代码,7.0代表的你项目使用的SDK的版本,构建的时候也需要选择好指定的镜像tag FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443F…

报表控件Stimulsoft 2023回顾:都做了哪些产品的改变?

在2023年过去一年中,报表控件Stimulsoft 针各类控件都做了重大改变,其中新增了某些产品、同时加强了很多产品的性能和UI设计,更加符合开发者需求,下面就跟随小编一起来回顾,具体都有哪些↓↓↓ Stimulsoft Ultimate &…

uniapp打包后图片资源会重复

hbuildx打包后文件过大,多方优化后,发现会生成重复的图片,如图: 临时解决方法: lib.zip chain-webpack.js_.zip 解压 lib.zip 替换到 HBuilderX根目录/plugins/uniapp-cli/node_modules/dcloudio/uni-cli-shared/lib…

【无标题】MySQL8修改非root用户密码

首先查看修改的用户信息,我这里用户名是demo,host是**%** 然后使用alter命令修改密码 这里USER后的参数是第一步里查询得到的user与host的组合。ALTER USER demo% IDENTIFIED WITH mysql_native_password BY 新密码;可能会出现的错误: 如果百…

DNS被劫持怎么办

DNS劫持是一种网络攻击,攻击者通过篡改DNS记录,将特定域名的解析结果指向错误的IP地址,从而实现对特定网站的访问劫持或流量劫持。这种攻击方式严重影响了用户的上网体验,并可能导致用户隐私泄露。下面也从原因、危害以及应对的策…

Spring中的工厂类

目录 1.ApplicationContext 4.2.BeanFactory 1.ApplicationContext ApplicationContext的实现类,如下图: ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件 FileSystemXmlApplicationContext:加载本地磁盘下 S…

TypeScript 从入门到进阶之基础篇(五) 枚举类型篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇 持续更新中… 文章目录 …

Ubuntu安装Anaconda并创建虚拟环境

1. 在Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror页面的中后部找到相应Server的最新版本。 2. 点击下载发文时的最新版本Anaconda3-2023.09-0-Linux-x86_64.sh。 3. 上传后,执行bash Anaconda3-2023.09-0-Linux-x86_64.…

【性能测试入门】:压力测试概念!

压力测试可以验证软件应用程序的稳定性和可靠性。压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力,并确保软件在紧急情况下不会崩溃。它甚至可以进行超出软件正常工作条件的测试,并评估软件在极端条件下的工作方式。 在软件工程中&…

Arrays 的使用

Arrays 概述 提供了数组操作的相关方法&#xff0c;连接数组和集合 asList 返回指定数组的列表列表和数组的引用位置相同 Integer[] arrs new Integer[] {1,2,3,4,5,6,7,8,9};List<Integer> list Arrays.asList(arrs);System.out.println(list);arrs[5] 100;Syste…

【设计模式之美】SOLID 原则之二:开闭原则方法论、开闭原则如何取舍

文章目录 一. 如何理解“对扩展开放、修改关闭”&#xff1f;二. 修改代码就意味着违背开闭原则吗&#xff1f;三. 如何做到“对扩展开放、修改关闭”&#xff1f;四. 如何在项目中灵活应用开闭原则&#xff1f; 一. 如何理解“对扩展开放、修改关闭”&#xff1f; 具体的说&a…

如何判断模型陷入局部最优解的陷阱?

判断一个模型是否陷入了局部最优解的陷阱并不总是直观的&#xff0c;但有一些迹象和方法可以帮助我们做出判断&#xff1a; 训练进程停滞&#xff1a; 如果模型的训练误差或验证误差在经过多次迭代后停止改善或改善非常缓慢&#xff0c;这可能是一个迹象。 训练和验证误差的差…

欠拟合与过拟合

在模型训练中&#xff0c;我们总是希望最终的模型在训练集上有很好的拟合即训练误差小&#xff0c;同时在测试集上也要有较好的拟合效果即泛化误差小&#xff0c;但往往不尽人意。 总之&#xff0c;模型的训练是一个不断调整和优化的过程&#xff0c;我们需要根据实际情况选择合…

【EI会议征稿通知】第三届城市规划与区域经济国际学术会议(UPRE 2024)

第三届城市规划与区域经济国际学术会议&#xff08;UPRE 2024&#xff09; 2024 3rd International Conference on Urban Planning and Regional Economy 第三届城市规划与区域经济国际学术会议&#xff08;UPRE 2024&#xff09;于2024年4月19-21日在泰国曼谷举行。会议旨在…

【MySQL】分组(group by)后再筛选(having)巧用 sum(条件表达式) 语法

力扣题 1、题目地址 1083. 销售分析 II 2、模拟表 表&#xff1a;Product Column NameTypeproduct_idintproduct_namevarcharunit_priceint Product_id 是该表的主键(具有唯一值的列)。该表的每一行表示每种产品的名称和价格。 表&#xff1a;Sales Column NameTypesel…

Studio 3T客户端连接Mongodb数据库服务

这里需要注意 一定要先开Studio 3T 到 创建连接时才开Mongodb服务 不然 Studio 3T 会找不到Mongodb服务 不知道这是不是 Studio 3T官方问题 期待解决吧 我们打开 Studio 3T 然后点击 Create a new connection 开始创建连接 新弹出的窗口中选择 Manually configure my connec…

实验4.4 动态路由OSPF协议的配置

实验4.4 动态路由OSPF协议的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.配置交换机和路由器的接口的IP地址等参数。2.配置动态路由OSPF协议&#xff0c;实现全网互通。 六、任务验收七、任务小结八、知识链接1&#xff0e;OSPF协议概念2&#xff0e;…

MessageBox打通数字通信:深度解析HubSpot与微信群的无缝对接

在当今数字化时代&#xff0c;企业追求更高效的客户互动方式。HubSpot作为综合性的市场营销、销售和服务平台&#xff0c;其与微信群的无缝对接成为企业数字化沟通的重要一环。今天运营坛将深度解析HubSpot如何精准对接微信群&#xff0c;并着重探讨MessageBox在这一过程中的关…

鸿蒙Ability开发-Stage模型下Ability的创建和使用

创建Ability和Page页面 创建两个Ability&#xff1a;EntryAbility&#xff0c;DetailsAbility&#xff0c;其中EntryAbility是由工程默认创建的&#xff0c;这里我们只讲如何创建DetailsAbility。 使用DevEco Studio&#xff0c;选中对应的模块&#xff0c;单击鼠标右键&…