vim三种模式,文本操作(操作字符/光标,列出行号可视化块模式/多文件查看)
目录
vim--文本编辑器
功能
基本概念
命令/默认模式
插入模式
底行模式
文本操作
引入
移动光标位置
删除字符 -- x/dd
复制/粘贴字符 -- yw/yy+p
替换文本 -- r / %s
底行模式
全局替换 -- /g
撤销操作 -- u / ctrl+r
修改字符 -- cw
示例
跳行 -- ctrl+g
底行模式
列出行号(底行模式) -- set nu
多行注释 (可视化块模式 ctrl+v)
可视化块模式(V-BLOCK)
查找字符(底行模式下: / )
完美匹配
更改大小写匹配
保存文件(底行模式)
退出vim(底行模式)
多文件查看(底行模式)
配置vim
vim--文本编辑器
功能
首先在知道它怎么用之前,得知道它大概是个啥东西
- 用官方的话来说,它是适用于各种编程任务和文本编辑需求的文本编辑器
- 类比的话,notepad++,vscode也是文本编辑器,只不过这几个适用的平台不同
基本概念
vim最常用的有三种模式,就像pdf文件有阅读模式和编辑模式
分别是:
命令/默认模式
- 是进入vim时的默认模式
- 可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
- 只能通过它来进入另两个模式,它就像必要的桥梁一样!
插入模式
- 进入:输入a/i/o
- 进行文字输入,也就是编辑模式
底行模式
- 进入: shift + : (也就是打出一个冒号)
可以保存文件或退出vim
也可以在不退出vim的情况下,进行文件替换,找字符串,列出行号等操作
其他模式退出到命令模式: esc键
文本操作
引入
编辑模式下只能编辑文本,而不能操作文本
(下面介绍的操作中,未说明的就是在命令模式下操作)
移动光标位置
可以用键盘上的上下左右键,也可以使用 h j k l ,这四个键在同一行,分别代表上下左右
删除字符 -- x/dd
复制/粘贴字符 -- yw/yy+p
替换文本 -- r / %s
r :替换光标所在处的字符
R :替换光标所到之处的字符,直到按下「esc」键为止
- [删除键]可以删掉更改的字符,恢复原先的字符
底行模式
%s :在底行模式下, 输入 %s / 被替换字符 / 替换成的字符
下面,i会被替换成q:
不加任何选项的情况下,似乎是默认将每句话符合的第一个字母进行替换:
全局替换 -- /g
如果想要全局替换,可以在后面加 /g
这样,所有的i都变成了q
撤销操作 -- u / ctrl+r
撤销是我的心头宝,永爱
修改字符 -- cw
- c 是“修改(change)”(即删除后进入插入模式),后面可以接一个移动命令,意思是修改光标点到移动终点之间的内容
- w 是移动到下一个单词,所以 cw 就是把光标位置到下一个单词之前的内容删掉,并进入插入模式。就是俗话说的修改一个单词
示例
在当前光标处,如果连续使用cw,会怎么样呢?
跳行 -- ctrl+g
底行模式
底行模式下:
列出行号(底行模式) -- set nu
取消行号:set nonu
多行注释 (可视化块模式 ctrl+v)
可视化块模式(V-BLOCK)
可以选择要编辑的矩形区域,然后,在选择的区域中插入、删除、复制或移动文本
查找字符(底行模式下: / )
不需要按冒号, / 键会自动进入底行模式
其中:
- / + 字符:是从光标位置之前匹配的字符开始定位,从上往下找
- ? + 字符:是从之后匹配的字符开始,从下往上找
默认下,是将输入的字符作为字符串进行匹配,包括该字符串的都可以被搜索到
完美匹配
如果要将输入的内容作为一个单词(也就是必须完美匹配),使用: / \<**\>
查找下一个匹配项: * :向下搜索, # :向上搜索
更改大小写匹配
添加\c
来源于--Verifying your browser... | myfreax
保存文件(底行模式)
输入w
退出vim(底行模式)
- 输入q
- 如果无法退出,可以输入q! (! 表示强制操作)
多文件查看(底行模式)
来源于--(23条消息) vim窗口切换_lm_y的博客-CSDN博客
配置vim

相关文章:
vim三种模式,文本操作(操作字符/光标,列出行号可视化块模式/多文件查看)
目录 vim--文本编辑器 功能 基本概念 命令/默认模式 插入模式 底行模式 文本操作 引入 移动光标位置 删除字符 -- x/dd 复制/粘贴字符 -- yw/yyp 替换文本 -- r / %s 底行模式 全局替换 -- /g 撤销操作 -- u / ctrlr 修改字符 -- cw 示例 跳行 -- ctrlg 底行…...
jquery控制easyui中combobox、textbox显示隐藏
//combobox下拉框 $("#下拉框id.combo").hide();//textbox输入框 $("#输入框id.textbox").hide(); 参考网址: https://blog.csdn.net/Coldmood/article/details/128279727...
Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View,Kotlin(4)
Android拖放startDragAndDrop拖拽onDrawShadow静态添加xml布局View,Kotlin(4) import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import a…...
Servlet 初始化参数(web.xml和@WebServlet)
1、通过web.xml方式 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xm…...
shell_62.shell脚本生成一个标准的 SQL INSERT 语句
无论是将文件读入脚本,还是将数据从脚本输出到文件,都会用到文件重定向,这是一种很 常见的操作。本节中的示例脚本两种功能皆有。它会读取 CSV 格式的数据文件,输出 SQL INSERT 语句,并将数据插入数据库。 shell 脚本使…...
华为ICT——第五章语音处理理论与实践
目录 语言学: 主要应用场景: 语言学: 语言学: 语音学(1) 语音学(2) 语音处理介绍: 人类语音的来源: 语言数据: 语言信号预处理: …...
ardupilot开发 --- SLAM 篇
1. 视觉SLAM 1.1 深度相机的种类 结构光相机,如 Kinect1.0、RealSenseTOF相机,如 Kinect2.0双目相机,如 ZED详细参考:https://zhuanlan.zhihu.com/p/282776636 1.2 视觉SLAM算法 2D slam 与3D slam 应用场景有哪些不同&#x…...
Elasticsearch:在你的数据上训练大型语言模型 (LLM)
过去的一两年,大型语言模型(LLM)席卷了互联网。 最近 Google 推出的 PaLM 2 和 OpenAI 推出的 GPT 4激发了企业的想象力。 跨领域构思了许多潜在的用例。 多语言客户支持、代码生成、内容创建和高级聊天机器人都是一些例子。 这些用例要求 LL…...
拓展卡尔曼滤波EKF
How to fusion two Gauss Distribution N ( x , μ 0 , σ 0 ) N ( x , μ 1 , σ 1 ) N ( x , μ ′ , σ ′ ) \begin{equation} \begin{aligned} \mathcal{N}(x,\mu_0,\sigma_0) \mathcal{N}(x,\mu_1,\sigma_1) \mathcal{N}(x,\mu,\sigma) \\ \end{aligned} \end{equatio…...
第四章 应用SysML基本特性集的汽车示例 P2(断更)|系统建模语言SysML实用指南学习
仅供个人学习 使用试用版CSM很鸡肋,然后书中一些内容没有说明,自定义方面有点困难,第四章暂时停止 同时感觉画图的顺序也很随意?甚至需求图放在了后面,觉得很离谱。 准备跳过这一章节 汽车模型 续P1 序列图表示启…...
Vue入门——核心知识点
简介 Vue是一套用于构建用户界面的渐进式JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求…...
使用opencv的tracking模块跟踪目标
OpenCV跟踪模块算法介绍 OpenCV的tracking模块是一个功能强大的跟踪算法库,包含多种用于跟踪对象的算法。它可以帮助你在连续的视频帧中定位一个物体,例如人脸、眼睛、车辆等。 在OpenCV的tracking模块中,一些主要的跟踪算法包括࿱…...
Debian或Ubuntu静态交叉编译arm和aarch64
Debian或Ubuntu静态交叉编译arm和aarch64 介绍术语ARM架构前置条件从源代码编译一个简单的C程序configure和make交叉编译关于静态链接和依赖关系使用 musl libc 实现与 configure 和 make 进行交叉编译 ARM 正在获得越来越多的关注,并且越来越受欢迎。直接在这些基于…...
最新ai系统ChatGPT程序源码+详细搭建教程+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
【设计模式】第16节:行为型模式之“命令模式”
一、简介 命令模式:将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、…...
安装pytorch报错torch.cuda.is_available()=false的解决方法
参考文章: https://blog.csdn.net/qq_46126258/article/details/112708781 https://blog.csdn.net/Andy_Luke/article/details/122503884 https://blog.csdn.net/anmin8888/article/details/127910084 https://blog.csdn.net/zcs2632008/article/details/127025294 …...
自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮
自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 自定义表格的表头根据后端的数据进行筛选是否进行自定义表头添加按钮 <template><div class"box"><el-table :data"msgMapList" border class"table">&l…...
海上风电应急救援vr模拟安全培训提高企业风险防范能力
相比传统的发电厂,海上风电作业积累的经验少,风险高,因此为了规范施工人员的行为和操作,保障生产安全进行,开展海上风电VR安全培训具有重要意义。 有助于提高员工的安全意识 通过模拟真实的海上风电作业环境࿰…...
自定义SpringBoot启动图标
在SpringBoot项目的resources目录下创建banner.txt文件 在https://www.bootschool.net/网站上复制Ascll艺术字(图)粘贴到banner.txt中保存。 启动项目就会加载 可以修改颜色,和版本号 ${application.version} 输出版本 ${spring-boot.v…...
diffusers-Tasks
https://huggingface.co/docs/diffusers/using-diffusers/unconditional_image_generationhttps://huggingface.co/docs/diffusers/using-diffusers/unconditional_image_generation1.Unconditional image generation 无条件图像生成是一个相对简单的任务。模型仅生成图像&…...
C# 异步编程在 AI 应用中的最佳实践
一、引言 AI 应用开发中的异步需求 在当今的人工智能应用开发领域,异步编程已经成为不可或缺的核心技术。当我们与 AI 大模型进行交互时,网络请求的延迟、流式响应的处理、并发调用多个模型——这些场景无不对程序的响应能力和吞吐量提出了极高要求。传统的同步编程模式在面…...
DroidCam手机变电脑摄像头工具
DroidCam 这款免费工具,能让你的安卓或iPhone瞬间变成电脑的无线/USB摄像头。无论是开Zoom会议、上网课还是直播,画质直接碾压普通电脑摄像头。优点很明显:零成本:利用闲置旧手机,省下买新摄像头的钱。画质好ÿ…...
OpenClaw技能开发入门:为Phi-3-vision-128k-instruct编写图片转Markdown插件
OpenClaw技能开发入门:为Phi-3-vision-128k-instruct编写图片转Markdown插件 1. 为什么需要这个技能 上周整理技术文档时,我遇到了一个典型痛点:需要将十几张包含代码片段的截图转换成可编辑的Markdown格式。手动转录不仅耗时,还…...
程序员必看!高质量免费源码网推荐
在数字化浪潮席卷全球的今天,代码已成为驱动创新的核心动力。无论是初创企业快速搭建商业平台,还是开发者优化项目架构,高质量的源码资源都能显著缩短研发周期、降低开发成本。然而,面对网络上鱼龙混杂的源码平台,如何…...
城通网盘直链解析:三步实现免费高速下载的完整方案
城通网盘直链解析:三步实现免费高速下载的完整方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为网盘下载速度慢而烦恼吗?ctfileGet为你提供了一个智能解决方案…...
嵌入式Linux网络状态检测方案与优化实践
1. 嵌入式设备网络状态检测实战指南 在嵌入式Linux开发中,网络连接状态的实时监测是个常见但容易被忽视的需求。想象一下,你正在开发一个智能家居网关,突然Wi-Fi断了,但设备还在傻乎乎地发送数据;或者工业现场的设备&a…...
嵌入式开发中全局变量的优化实践与替代方案
1. 嵌入式开发中的全局变量困境作为一名在嵌入式领域摸爬滚打多年的工程师,我见过太多因为滥用全局变量而陷入维护噩梦的项目。记得刚入行时接手过一个智能家居控制器的代码库,打开项目一看,光是extern声明的全局变量就有200多个,…...
ESP32轻量libcurl移植:HTTP/HTTPS客户端开发指南
1. 项目概述libcurl-esp32是一个专为 ESP32 平台定制的轻量化 libcurl 移植库,其核心目标是在 PlatformIO 构建环境下,为嵌入式固件开发者提供标准curl/curl.h头文件接口及对应运行时功能。该库并非完整移植上游 libcurl 的全部特性(如 FTP、…...
XPT2046触摸驱动设计与车载嵌入式集成实践
1. XPT2046 触摸控制器驱动技术解析与嵌入式集成实践XPT2046 是一款广泛应用于嵌入式人机交互系统的 12 位逐次逼近型(SAR)模数转换器(ADC),专为四线/五线电阻式触摸屏设计。其核心功能并非独立显示驱动,而…...
CosmosNV2嵌入式C++库:STM32工业I/O模块原子级控制
1. 项目概述CosmosNV2 是一款专为 Cosmos NV2 Shield 硬件扩展板设计的嵌入式 C 类库,面向基于 STM32(尤其是 STM32F4 系列)的 Arduino 兼容开发平台(如 Nucleo-F401RE、Nucleo-F411RE)构建。该库并非通用型外设抽象层…...























