常用Vim操作
vimrc配置
ctags -R *
生成tags文件
set number
set ts=4
set sw=4
set autoindent
set cindent
set tag=~/tmp/log/help/tags
自动补全:
- ctrl+n:自动补全
输入:
- a:从当前文字后插入
- i:从当前文字前插入
- s: 删除当前字符,从当前字符插入
回退
- u:撤销
- 恢复撤销:ctrl+r
删除:
- [n]dd:删除n行
- [n]dw:从光标开始删除n个词
- d$: 删除光标之后的内容,但是不删除行号
- 可以在命令行模式(按下 “:” 进入)下输入 “:5,7d”,删除指定行,如果是“:-1d”表示删除上一行
- x:删除光标位置的字符
跳跃:
- w:向后跳跃一个词
- b:向前跳跃一个词
- 0:跳到开头
- $(shift+4):跳到结尾
- %(shift+5):括号匹配跳转
- gg:跳到文件顶部
- G:跳到文件末尾
- [n]G:跳到指定行
复制:
- [n]yy:复制n行
- 可以在命令行模式(按下 “:” 进入)下输入 “:5,7y”,复制指定行
- p:粘贴到光标所在行的下一行
- P:粘贴到光标所在的前一行
- 可以在命令行模式(按下 “:” 进入)下输入 “:5put”,粘贴到指定行的下一行
- y[n]w:复制单词
剪切:
- 删除命令等于剪切
跳转:
- ctrl+]: 跳到引用
- ctrl+t: 回跳
修改:
- r:修改当前光标的字符
查找:
-
/main :斜线加字符串
- n :下一个匹配字符串
- N :上一个匹配字符串
-
?main : 问号加字符串
区别:
- /是向下搜索,n表示下一个,N表示上一个
- ?是向上搜索,n表示上一个,N表示下一个
替换:
- [范围]s/查找内容/替换内容/[标志]
- s/old/new/ :当前行替换第一个匹配
- %s/main/abc/g :全文替换所有匹配
- 5,10s/old/new/g : 指定范围替换
常用替换标志:
g:全局替换,c手动确认每个替换
块编辑模式
- ctrl+v:上下左右选择,选择之后按d删除,按r修改
多窗口:
- vs [filename]:左右打开一个窗口,如果不指定文件就复制当前窗口
- split [filename]:上下打开一个窗口,如果不指定文件就复制当前窗口
- ctrl+w:切换窗口
相关文章:
常用Vim操作
vimrc配置 ctags -R * 生成tags文件 set number set ts4 set sw4 set autoindent set cindent set tag~/tmp/log/help/tags 自动补全: ctrln:自动补全 输入: a:从当前文字后插入i:从当前文字前插入s: 删除当前字…...
【C#】NET 9中LINQ的新特性-CountBy
前言 在 .NET 中,使用 LINQ 对元素进行分组并计算它们的出现次数时,需要通过两个步步骤。首先,使用 GroupBy方法根据特定键对元素进行分类。然后,再计算每个组元素包含个数。而随着 .NET 9 版本发布,引入了一些新特性。其中 LINQ 引入了一种新的方法 CountBy,本文一起来了…...
Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】
化工安全关系到国计民生,近年来随着化工厂数字化改革不断推进,数字工厂逐步成为工厂安全管理的重要手段。而化工管道作为工厂设施的重要组成部分,由于其数量多、种类繁杂,一直是企业管理的重点和难点。 传统的化工管廊往往缺乏详…...
【数据结构】文件和外部排序
外部排序 外存信息的存取 计算基本存储方式 内部存储(主存):断电后数据会丢失,访问速度快,成本高容量通常较小外部存储(辅存):断电后数据不会丢失,访问速度较慢&#x…...
新手学习:网页前端、后端、服务器Tomcat和数据库的基本介绍
首先一点,不管是那个框架开发的网页前端,最后都需要Build,构建完毕以后都是原始的HTML CSS JS 三样文件! 网页前端 目录结构 在开始开发网站之前,首先需要了解如何组织文件。一个简单的网页项目通常会有以下几个文件夹和文件&…...
机器学习贝叶斯模型原理
一、引言 在机器学习与数据分析的广袤天地中,贝叶斯模型犹如一颗璀璨的明星,闪耀着独特的光芒,为众多领域的分类、预测等任务提供了强大的理论支撑与实用解法。然而,对于许多初涉此领域的小伙伴而言,贝叶斯模型背后的…...
【C++】实现100以内素数的求解
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯代码概览💯代码结构与逻辑分析1. 包含的头文件和命名空间2. 素数判断函数 isPrime功能输入与输出核心逻辑数学背景 3. 主函数 main功能核心逻辑输出示例 &#…...
Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!
Python 浏览器自动化新利器:DrissionPage,让网页操作更简单! 文章目录 Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!🚀 引言🌟 DrissionPage简介🛠️ 三大…...
Rust学习笔记_13——枚举
Rust学习笔记_10——守卫 Rust学习笔记_11——函数 Rust学习笔记_12——闭包 枚举 文章目录 枚举1. 定义1.1 无值变体1.2 有值变体1.3 枚举与泛型的结合 2. 使用2.1 和匹配模式一起使用2.2 枚举作为类型别名 3. 常用枚举类型 在Rust编程语言中,枚举(enum…...
Postgresql 格式转换笔记整理
1、数据类型有哪些 1.1 数值类型 DECIMAL/NUMERIC 使用方法 DECIMAL是PostgreSQL中的一种数值数据类型,用于存储固定精度和小数位数的数值。DECIMAL的精度是由用户指定的,可以存储任何位数的数值,而小数位数则由用户自行定义。DECIMAL类型的…...
AI开发:卷积神经网络CNN原理初识,简易例程 - 机器学习
一 、卷积神经网络是什么 (1)印象 今天说的CNN,并不是我们熟知的美国有线电视新闻网。 那什么是CNN呢? Convolutional Neural Networks, CNN)简单来说,就是用一个筛子来筛面粉的。 筛子就是卷积核&…...
详细介绍vue的递归组件(重要)
递归组件在 Vue 中是一个非常强大的概念,尤其在渲染层级结构(如树形结构、嵌套列表、评论系统等)时,能够极大地简化代码。 什么是递归组件? 递归组件就是一个组件在其模板中引用自身。这种做法通常用于渲染树形结构或…...
【单片机基础知识】基础知识(CortexM系列、STM32系统框架、存储器映射、寄存器映射)
1. CortexM系列介绍 ARM官方资料: 📎Arm Cortex-M4 Processor Datasheet.pdf📎Arm-Cortex-M7-Processor-Datasheet.pdf📎Arm Cortex-M Comparison Table_v3.pdf📎Arm Cortex-M3 Processor Datasheet.pdf 课程资料&a…...
yolov5导出命令
python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --device cpu --include onnx 关闭动态输入,cpu导出 检测onnx模型能否加载成功指令: python detect.py --weights yolov5s.onnx --dnn 终端调用detect.py检测图片命令&…...
RabbitMQ的常用术语介绍
出版商 “出版商”一词在不同的上下文中有不同的含义。一般来说,在消息传递中 发布者(也称为“生成者”)是应用程序(或应用程序实例) 发布 (生成) 消息。同一应用程序也可以使用消息 因此同时也…...
Docker魔法:用docker run -p轻松开通容器服务大门
前言 “容器”与“虚拟化”作为现代软件开发和运维中的关键概念,已经广泛应用于各个技术领域。然而,在使用 Docker 部署应用时,常常会遇到这样的问题:容器正常运行,却无法让外界访问其内部服务?即使容器内的应用顺利启动,外部无法通过浏览器或 API 进行连接。此时,doc…...
【后端面试总结】Redis过期删除策略
Redis会将每个设置了过期时间的key放入一个独立的字典中,以后会定时遍历这个字典来删除到期的key。除了定时遍历之外,它还会使用惰性策略来删除过期的key。所谓惰性策略就是在客户端访问这个key的时候,Redis对key的过期时间进行检查ÿ…...
数字图像处理(15):图像平移
(1)图像平移的基本原理:计算每个像素点的移动向量,并将这些像素按照指定的方向和距离进行移动。 (2)平移向量包括水平和垂直分量,可以表示为(dx,dy)ÿ…...
高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?
如果有遗漏,评论区告诉我进行补充 面试官: 什么是类加载器? 我回答: 在Java高级面试中,类加载器(ClassLoader)是一个重要的概念,它涉及到Java类的加载和初始化机制。以下是对类加载器的详细解释: 定义与作用 类加…...
JAVA子类的无参构造器中第一行的super
在 Java 中,子类的构造器是否需要显式调用 super 取决于父类(超类)的构造器。 如果父类有一个无参构造器: 如果父类有一个无参构造器,那么子类的构造器可以不显式调用 super。在这种情况下,如果子类构造器的…...
DIY蓝牙街机摇杆:从零打造无线复古游戏控制器
1. 项目概述与核心思路作为一个玩了二十多年街机,也折腾了十几年硬件的“老炮儿”,我始终觉得,有些东西的味道是数字模拟不出来的。比如,用键盘或现代手柄玩《拳皇97》或《合金弹头》,总觉得少了点灵魂——那“咔哒咔哒…...
OdinSerializer扩展开发完全手册:创建自定义序列化组件
OdinSerializer扩展开发完全手册:创建自定义序列化组件 【免费下载链接】odin-serializer Fast, robust, powerful and extendible .NET serializer built for Unity 项目地址: https://gitcode.com/gh_mirrors/od/odin-serializer OdinSerializer是一款专为…...
AI VTuber技术栈全解析:从Live2D到GPT-SoVITS的实战搭建指南
1. 项目概述:为什么我们需要一份AI VTuber的“Awesome”清单? 如果你最近在GitHub、B站或者一些技术社区里逛过,大概率会看到一个词反复出现: AI VTuber 。它不再是科幻电影里的概念,而是正在快速渗透到直播、内容创…...
从零开始:用PX4的uORB消息机制,手把手教你实现模块间通信(附代码示例)
从零构建PX4模块通信:uORB消息机制实战指南 在PX4飞控生态中,模块间通信如同无人机的神经系统,而uORB(微对象请求代理)正是这个系统的核心传输介质。当开发者尝试为飞控添加激光雷达或自定义IMU时,往往会遇…...
别再乱收CAN报文了!STM32F407的HAL库CAN过滤器配置保姆级避坑指南
STM32F407 HAL库CAN过滤器配置:从原理到实战的深度解析 在嵌入式系统开发中,CAN总线因其高可靠性和实时性被广泛应用于汽车电子、工业控制等领域。然而,许多开发者在STM32F407上使用HAL库配置CAN过滤器时,常常陷入"能接收数据…...
TSSP77038红外解调器:从原理到实战,打造高可靠接近传感与光束中断系统
1. 项目概述:从“遥控”到“感知”的红外新思路在嵌入式开发和电子制作领域,红外(IR)技术几乎是每个玩家都会接触到的老朋友。我们最熟悉的莫过于家里的电视、空调遥控器,它们通过发射一串调制在38KHz载波上的红外脉冲…...
音乐学者必看的NotebookLM冷启动指南,从乐谱OCR识别到和声进行语义建模,一步到位
更多请点击: https://intelliparadigm.com 第一章:NotebookLM在音乐学研究中的范式革命 NotebookLM(由Google Research推出的基于用户上传文档的AI助手)正悄然重塑音乐学研究的方法论边界。它不再依赖通用知识库的模糊匹配&#…...
(122页PPT)数字化架构的演进和治理(附下载方式)
篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/2501_92796370/92683865 资料解读:(122 页 PPT)数字化架构的演进和治理 详细资料请看本解读文章的最后内容 在数字化转…...
S7-1500 PLC做高速数据采集?一个32位微秒时间戳的完整实现与避坑指南
S7-1500 PLC微秒级时间戳工程实践:从硬件同步到数据拼接的完整方案 在工业自动化领域,毫秒级响应已是基础要求,而微秒级精度正成为高端装备的标配。当一台数控机床以8000转/分钟的速度运行时,每个刀具接触工件的瞬间都需被精确记录…...
基于Terraform与Azure的Dify AI平台云原生自动化部署实践
1. 项目概述:一键部署AI应用平台的云原生方案最近在折腾AI应用开发平台,发现很多团队在从本地原型验证转向云端生产环境时,总会遇到一堆“部署地狱”的问题。环境配置不一致、资源管理混乱、成本不可控,这些问题在需要整合多个AI模…...
