Linux中的Vim文本编辑器
Linux中的Vim是一个非常强大的文本编辑器,它提供了丰富的命令来支持各种文本编辑操作。以下是一个Vim常用命令的详细总结,涵盖了基本操作、编辑命令、移动光标、查找替换、保存退出等多个方面。
一、基本操作
-
启动Vim
vim:直接启动Vim编辑器。vim filename:打开或创建文件并启动Vim进行编辑。
-
模式切换
-
Vim有三种主要模式:正常模式(Normal Mode)、插入模式(Insert Mode)和命令行模式(Command-line Mode)。
- 正常模式:默认模式,用于执行大多数命令。
- 插入模式:用于输入文本。
- 命令行模式:用于执行保存、退出等命令。
-
切换模式:
- 从正常模式到插入模式:
i(在当前位置插入)、I(在当前行首插入)、a(在当前位置后插入)、A(在当前行尾插入)、o(在当前行下新开一行插入)等。 - 从插入模式到正常模式:按
Esc键。
- 从正常模式到插入模式:
-
二、编辑命令
-
复制和粘贴
- 复制:
yy(复制当前行)、y$(复制至行尾)、yw(复制一个单词)、yG(复制到文件末尾)等。 - 粘贴:
p(在光标后粘贴)、P(在光标前粘贴)。
- 复制:
-
删除
x:删除当前字符。X:删除前一个字符(等价于dh)。dd:删除当前行。D或d$:删除从当前光标位置到行尾的所有字符。dw:删除一个单词。
-
撤销和重做
u:撤销上一次操作。Ctrl + r:重做上一次撤销的操作。
三、移动光标
-
基本移动
h:左移一个字符。j:下移一行。k:上移一行。l:右移一个字符。
-
单词间移动
w:向前移动到下一个单词的开头。e:向前移动到下一个单词的末尾。b:向后移动到上一个单词的开头。
-
行内移动
0(数字零):移动到行首。^:移动到行首的第一个非空白字符。$:移动到行尾。
-
页面移动
Ctrl + f:向下滚动一页。Ctrl + b:向上滚动一页。Ctrl + d:向下滚动半页。Ctrl + u:向上滚动半页。
-
文件内移动
gg:移动到文件的第一行。G:移动到文件的最后一行。:n(n为行号):移动到文件的第n行。
四、查找和替换
-
查找
/text:向前查找text。?text:向后查找text。n:查找下一个匹配项。N:查找上一个匹配项。
-
替换
:s/old/new/:将当前行的第一个old替换为new。:s/old/new/g:将当前行的所有old替换为new。:%s/old/new/g:将文件中的所有old替换为new。
五、保存和退出
-
保存
:w:保存当前文件。:w filename:将当前文件另存为filename。
-
退出
:q:如果文件未修改,则退出Vim。:q!:强制退出Vim,不保存任何修改。:wq或ZZ:保存并退出Vim。
六、其他常用命令
-
分屏操作
:split或:sp:水平分割窗口。:vsplit或:vsp:垂直分割窗口。Ctrl + w + w:在分屏间切换。
-
设置
:set nu:显示行号。:set nonu:不显示行号。:set hlsearch:高亮显示搜索结果。:set nohlsearch:关闭高亮显示。
-
录制宏
qa:开始录制宏a。- …(执行一系列命令)
q:结束录制。@a:执行宏a。
-
执行外部命令
:!command:在Vim中执行外部命令。
七、高级技巧
-
多文件编辑
vim file1 file2:同时打开多个文件。:next或:n:切换到下一个文件。:prev或:p:切换到上一个文件。:first:切换到第一个文件。:last:切换到最后一个文件。
-
文本对象操作
- Vim支持多种文本对象,如
iw(内部单词)、aw(一个单词)、ip(内部段落)等,可以与删除、复制等命令结合使用。
- Vim支持多种文本对象,如
-
可视模式
- 在正常模式下,按
v进入可视模式,按V进入可视行模式,按Ctrl + v进入可视块模式。在可视模式下,可以选择文本块并执行删除、复制等操作。
- 在正常模式下,按
以上就是Vim编辑器的一些常用命令和高级技巧。Vim的功能非常强大,这里只是列举了一部分常用的命令和技巧。通过不断的学习和实践,你可以逐渐掌握Vim的更多高级功能和技巧,从而提高你的文本编辑效率。
相关文章:
Linux中的Vim文本编辑器
Linux中的Vim是一个非常强大的文本编辑器,它提供了丰富的命令来支持各种文本编辑操作。以下是一个Vim常用命令的详细总结,涵盖了基本操作、编辑命令、移动光标、查找替换、保存退出等多个方面。 一、基本操作 启动Vim vim:直接启动Vim编辑器…...
rancher搭建k8s及jenkins自动化部署
1、准备环境 角色IP用途k8s-rancher-master192.168.3.63master节点k8s-rancher-node01192.168.3.64node节点k8s-rancher-node02192.168.3.66node节点k8s-rancher-server192.168.2.33rancher-server节点注: 服务器名需要配置不同,相同服务器名不能加入node节点 在所有节点进行…...
vue el-dialog嵌套解决无法点击问题
产生原因: 当你在 el-dialog 上嵌套另一个 el-dialog 窗口时,可能会遇到内部对话框无法点击的问题。这通常是由于嵌套对话框的遮罩层(overlay)或其他样式问题造成的。 解决方案: 如果你的 el-dialog 组件支持 append-to-body 属性ÿ…...
c# c++程序 交互
目录 一、两种不同程序写的进程交互 1、定义交互消息 2、定义C进程发来的消息ID 3、定义C进程交互的句柄 及给C进程发送的消息ID 4、定义交互消息所需的数据类型 5、引入所需的系统函数 6、给主进程发消息 7、写入本进程主窗口句柄 8、处理发来的交互消息 一、两种不…...
解决ruoyi框架中使用pagehelper插件分页查询后对数据进行对象转换后失效问题
一、场景重现 使用rouyi框架时,可以看到很多分页查询,如: //-----------SysConfigController------------- GetMapping("/list") public TableDataInfo list(SysConfig config) {startPage();List<SysConfig> list config…...
RabbitMQ 应用
文章目录 前言1. Simple 简单模式2. Work Queue 工作队列模式3. Pubulish/Subscribe 发布/订阅模式Exchange 的类型 4. Routing 路由模式5. Topics 通配符模式6. RPC RPC通信7. Publisher Confirms 发布确认1. 单独确认2. 批量确认3. 异步确认 前言 前面我们学习了 RabbitMQ 的…...
使用Python读取Excel数据的详细指南
在数据分析中,Excel文件是一种常见的数据存储格式。使用Python读取Excel数据可以帮助我们更方便地进行数据处理和分析。本文将介绍如何在Python 2和Python 3中读取Excel数据,具体步骤和代码示例详细说明。 准备工作 在开始之前,请确保你已经…...
VitePress 动态路由与路径加载器详解
在使用 VitePress 构建静态网站时,动态路由功能允许我们通过单个 Markdown 文件和动态数据生成多个页面。本文将详细介绍如何使用动态路由以及路径加载器文件来生成这些页面,并提供实例代码和解释说明。 动态路由基础 动态路由的核心在于使用带有参数的…...
C#编程语言及.NET 平台快速入门指南
Office Word 不显示 Citavi 插件,如何修复?_citavi安装后word无加载项-CSDN博客 https://blog.csdn.net/Viviane_2022/article/details/128946061?spm1001.2100.3001.7377&utm_mediumdistribute.pc_feed_blog_category.none-task-blog-classify_ta…...
高等代数精解【9】
文章目录 向量空间与矩阵矩阵的行列式矩阵A的秩保持不变方阵的行列式线性无关的条件1. 线性组合为零向量的唯一性2. 矩阵的秩3. 几何解释(对于二维和三维空间)4. 行列式(对于方阵)总结 矩阵的非零子式基础重要性例子注意事项 非奇…...
谷粒商城の缓存篇
文章目录 前言一、本地缓存和分布式缓存1.本地缓存2.分布式缓存 二、项目实战1.配置Redis2.整合业务代码2.1 缓存击穿2.2 缓存雪崩2.3 缓存穿透2.4 业务代码1.0版2.5 分布式锁1.0版2.6 分布式锁2.0版2.7 Spring Cache及缓存一致性问题2.7.1 Spring Cache2.7.2 缓存一致性问题2.…...
永远学习:为什么人工智能难以适应新挑战
理解深度学习的局限性并追求真正的持续适应 欢迎来到雲闪世界。 “智者适应环境,正如水适应水瓶。”——中国谚语 “适应或灭亡,现在和以往一样,是大自然的必然法则。”——赫伯特乔治威尔斯 近年来,人工智能取得了长足的进步。所…...
【spring】 Jackson :@JsonIgnore 注解
@JsonIgnore 是 Jackson 库中的一个注解,用于在序列化和反序列化过程中忽略某个字段。也就是说,当对象被转换为 JSON 或从 JSON 转换为对象时,带有 @JsonIgnore 注解的字段将不会被包含在内在这个示例中,ignoredField 字段将不会出现在生成的 JSON 字符串中。 import com.…...
Dependencies与DependencyManagement的区别
现在Maven项目管理,在开发中时比较常用的,在一些项目汇总遇到依赖冲突的问题之后,还是没有能有一个很好的解决办法,这次就来看看在使用Maven管理依赖的过程中dependencies与dependencyManagement的区别。 DepencyManagement应用场…...
git svn 日记
1. git log -p -1 --name-only 该命令用于查看最新的一次提交记录的详细信息,包括文件更改情况。 git log:显示 Git 仓库的提交历史。-p:显示每次提交的差异 (diff),也就是文件内容的修改部分。-1:表示只显示最近的一…...
FSMC
RAM ROM RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。 并且RAM的速度要远远高于ROM的速度。 SRAM SRAM 的存储单元以锁存器来存储数据,种电路结构不需要定时…...
NAT技术+代理服务器+内网穿透
NAT技术 IPv4协议中,会存在IP地址数量不充足的问题,所以不同的子网中会存在相同IP地址的主机。那么就可以理解为私有网络的IP地址并不是唯一对应的,而公网中的IP地址都是唯一的,所以NAT(Network Address Translation&…...
【ABAP】ole2 excel多sheet导入导出
原理就不分享了 原来是用了动态表格,但是要导出不方便,所以就写死了,excel多sheet导入的类放在另一篇文章里 REPORT zcdemo17. INCLUDE ole2incl.DATA: excel TYPE ole2_object,workbooks TYPE ole2_object,workbook TYPE ole2_object…...
图像配准-小结
图像配准:找到一对图像间的几何变换关系,并且将待配准图像根据几何变换关系对齐到参考图像上,从而为图像融合、变化检测/监测提供基础。图像匹配,在某些语境中可能与上面的图像配准指的是一个东西,而在某些语境中可能指…...
【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
埃因霍温理工大学:冷冻编码器也能完美分割图像?
这项由埃因霍温理工大学领导的研究发表于2026年3月的arXiv预印本论文库,论文编号为arXiv:2603.25398v1。对于想要深入了解这项技术突破的读者,可以通过该编号查询到完整的技术论文。当前的人工智能就像一位技艺高超的多面手,能够处理各种复杂…...
2026年海外高校AIGC检测现状:留学生如何应对不同平台要求
2026年海外高校AIGC检测现状:留学生如何应对不同平台要求 都在担心AI率被查出来,但真正该注意的可能不是你以为的那些事。 关于海外高校AIGC检测,我研究了一段时间发现,很多流传的「攻略」其实是错的。真正有效的应对方式&#…...
CCF算法大赛C题详解:如何将整数m转换为n进制并输出特定多项式格式(附Python代码逐行分析)
CCF算法大赛C题详解:从进制转换到多项式格式化的完整指南 在编程竞赛中,处理数字的进制转换和特定格式输出是常见的基础题型。CCF算法大赛的这道题目巧妙地将这两个概念结合在一起,要求参赛者不仅实现进制转换,还要按照严格的规则…...
Go测试框架与基准测试
Go测试框架与基准测试:高效代码质量的守护者 在软件开发中,测试是确保代码质量的关键环节。Go语言凭借其简洁高效的特性,内置了强大的测试工具链,包括单元测试框架和基准测试功能。无论是验证逻辑正确性,还是评估性能…...
authentik开源身份认证与管理平台-与 Gitea 集成(6)
文章目录什么是 Gitea?准备authentik配置Gitea 配置配置验证什么是 Gitea? Gitea 是一个由社区管理的轻量级代码托管解决方案,使用 Go 编程语言编写。它在 MIT 许可下发布。 准备 在本指南中,使用了以下占位符: aut…...
[具身智能-221]:OpenCV以及在具身智能中的应用
OpenCV(开源计算机视觉库)在具身智能(Embodied AI)中扮演着“视觉皮层”和“基础感知工具包”的角色。虽然现代具身智能的核心决策往往依赖于深度学习框架(如PyTorch、TensorFlow)和大型模型,但…...
如何为Rust GUI应用添加无障碍支持:Iced屏幕阅读器与键盘导航实现指南
如何为Rust GUI应用添加无障碍支持:Iced屏幕阅读器与键盘导航实现指南 【免费下载链接】iced A cross-platform GUI library for Rust, inspired by Elm 项目地址: https://gitcode.com/GitHub_Trending/ic/iced Iced是一个受Elm启发的跨平台Rust GUI库&…...
AdminBSB表单组件实战:从基础到高级的完整解决方案
AdminBSB表单组件实战:从基础到高级的完整解决方案 【免费下载链接】AdminBSBMaterialDesign AdminBSB - Free admin panel that is based on Bootstrap 3.x with Material Design 项目地址: https://gitcode.com/gh_mirrors/ad/AdminBSBMaterialDesign Admi…...
12. 欧姆定律计算器
1. 欧姆定律计算器 功能介绍: 本应用旨在帮助学生快速验证欧姆定律(I=U/RI=U/RI=U/R)的计算关系。用户可以通过滑块...
从物理到经济:定积分在5个真实场景中的应用详解(含建模步骤)
从物理到经济:定积分在5个真实场景中的应用详解(含建模步骤) 数学公式常被诟病为"纸上谈兵",但当你看到工程师用积分计算桥梁承重、经济学家用积分预测市场趋势时,就会明白这些符号背后的力量。定积分不仅是…...
