以下是一份 Vim 命令大全,涵盖 编辑模式(Insert Mode)命令模式(Normal Mode)视图模式(Visual Mode) 的常用操作,适合初学者和进阶用户使用。


🧾 Vim 模式简介

Vim 是一个模式化编辑器,主要有以下几种模式:

模式进入方式说明
正常模式(Normal Mode)启动 Vim 默认进入此模式可执行移动光标、复制粘贴等操作
插入模式(Insert Mode)i, a, o 等键进入可以输入文本内容
视觉模式(Visual Mode)v, V, Ctrl + v 进入可以选择文本块进行操作
命令行模式(Command-line Mode):/ 进入执行保存、搜索、替换等命令

🔧 一、正常模式(Normal Mode)命令

启动 Vim 默认进入此模式。按下 Esc 可从其他模式返回。

🔍 光标移动

命令功能
h向左移动一个字符
j向下移动一行
k向上移动一行
l向右移动一个字符
w移动到下一个单词的开头
b移动到上一个单词的开头
e移动到当前或下一个单词的结尾
0移动到当前行的行首
$移动到当前行的行尾
gg跳转到文件开头
G跳转到文件末尾
nG跳转到第 n 行(如 5G 到第 5 行)
Ctrl + f向下翻页
Ctrl + b向上翻页
Ctrl + d向下滚动半页
Ctrl + u向上滚动半页

✏️ 编辑操作

命令功能
x删除当前字符
X删除前一个字符
dw删除一个单词
dd删除整行
ndd删除 n 行(如 3dd 删除 3 行)
d$删除从光标位置到行尾
d0删除从光标位置到行首
yy复制当前行
nyy复制 n 行
yw复制一个单词
p在光标下方粘贴
P在光标上方粘贴
u撤销一次修改
Ctrl + r重做一次撤销
.重复上一次编辑操作

⚙️ 文件操作

命令功能
:w保存文件
:w filename另存为 filename
:q退出(无修改时)
:q!强制退出且不保存修改
:wq保存并退出
:wq!强制保存并退出
:e filename打开另一个文件
:set number:set nu显示行号
:set nonumber:set nonu隐藏行号
:set list显示隐藏字符(如空格、Tab)
:set tabstop=4设置 Tab 宽度为 4 个字符
:set autoindent自动缩进
:set paste进入粘贴模式(防止自动缩进干扰)
:set nopaste关闭粘贴模式

🔍 搜索与替换

命令功能
/pattern向后搜索 pattern
?pattern向前搜索 pattern
n查找下一个匹配项
N查找上一个匹配项
:%s/old/new/g替换整个文件中的 old 为 new
:1,10s/old/new/g替换第 1~10 行中的 old 为 new
:s/old/new/替换当前行第一个匹配项
:s/old/new/g替换当前行所有匹配项
:s/old/new/gc替换当前行所有匹配项,并确认每个替换

✍️ 二、插入模式(Insert Mode)

按以下任意键可进入插入模式,按 Esc 返回正常模式。

命令功能
i在光标前插入
I在行首插入
a在光标后插入
A在行尾插入
o在当前行下方新建一行并插入
O在当前行上方新建一行并插入
s删除当前字符并进入插入模式
S删除当前行并进入插入模式

🧮 三、视觉模式(Visual Mode)

按以下任意键进入视觉模式,用于选中文本进行操作。

命令功能
v字符选择模式(Character-wise Visual Mode)
V行选择模式(Line-wise Visual Mode)
Ctrl + v块选择模式(Block-wise Visual Mode)
o切换光标起始点
>向右缩进选中区域
<向左缩进选中区域
y复制选中内容
dx删除选中内容
c删除选中内容并进入插入模式
:对选中区域执行命令(如 :'<,'>s/old/new/g

💡 四、命令行模式(Command-line Mode)

:/? 进入该模式,用于执行命令。

命令功能
:w保存
:q退出
:wq保存并退出
:q!不保存强制退出
:/pattern搜索 pattern 并跳转到第一次出现的位置
:help打开帮助文档
:help keyword查找关键字的帮助信息
:registers查看剪贴板寄存器内容
:map查看按键映射
:syntax on/off开启/关闭语法高亮
:filetype plugin indent on开启智能缩进和插件支持

🎨 五、高级技巧(可选)

技巧命令
多窗口分屏:split(水平)或 :vsplit(垂直)
切换窗口Ctrl + w + 方向键
打开多个文件vim file1 file2
在多个文件之间切换:next / :prev / :first / :last
加载插件管理器(如 Plug):PlugInstall(需配置 vim-plug)
使用宏录制q{a-z} 录制宏,@{a-z} 执行宏
快速注释代码(结合插件)NERD Commenter: <leader>cc 注释选中行

📄 六、实用示例

示例 1:查找并替换

:%s/foo/bar/g

将全文中所有 foo 替换为 bar

示例 2:显示行号并跳转到第 50 行

:set number
:50

示例 3:多窗口打开两个文件

:split otherfile.txt

示例 4:快速删除 5 行

5dd

📚 总结表格

操作命令
进入插入模式i, a, o
返回正常模式Esc
删除字符x
删除行dd
复制行yy
粘贴p
撤销u
重做Ctrl + r
保存:w
退出:q
保存并退出:wq
搜索/keyword
替换:%s/old/new/g
显示行号:set number
进入选择模式v, V, Ctrl + v

如果你是新手,可以先掌握以下核心命令:

i           # 进入插入模式
Esc         # 返回正常模式
:wq         # 保存并退出
:x          # 保存并退出(简写)
dd          # 删除一行
yy p        # 复制粘贴一行
u           # 撤销
Ctrl + r    # 重做

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

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

相关文章

每天看一个Fortran文件(10)

今天来看下MCV模式调用物理过程的相关代码。我想改进有关于海气边界层方面的内容&#xff0c;因此我寻找相关的代码&#xff0c;发现在physics目录下有一个sfc_ocean.f的文件。 可以看见这个文件是在好多好多年前更新的了&#xff0c;里面内容不多&#xff0c;总共146行。是计算…

python打卡day37

疏锦行 知识点回顾&#xff1a; 1. 过拟合的判断&#xff1a;测试集和训练集同步打印指标 2. 模型的保存和加载 a. 仅保存权重 b. 保存权重和模型 c. 保存全部信息checkpoint&#xff0c;还包含训练状态 3. 早停策略 作业&#xff1a;对信贷数据集训练后保存权重&#xf…

【Spark征服之路-2.9-Spark-Core编程(五)】

RDD行动算子&#xff1a; 行动算子就是会触发action的算子&#xff0c;触发action的含义就是真正的计算数据。 1. reduce ➢ 函数签名 def reduce(f: (T, T) > T): T ➢ 函数说明 聚集 RDD 中的所有元素&#xff0c;先聚合分区内数据&#xff0c;再聚合分区间数据 val…

【入门】【练17.3 】比大小

| 时间限制&#xff1a;C/C 1000MS&#xff0c;其他语言 2000MS 内存限制&#xff1a;C/C 64MB&#xff0c;其他语言 128MB 难度&#xff1a;中等 分数&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分数2难度) 出题人&#xff1a;root | 描述 试编一个程序&#xff0c;输入…

CppCon 2017 学习:Free Your Functions!

“Free Your Functions!” 这句话在C设计中有很深的含义&#xff0c;意思是&#xff1a; “Free Your Functions!” 的理解 “解放你的函数”&#xff0c;鼓励程序员&#xff1a; 不要把所有的函数都绑在类的成员函数里&#xff0c;优先考虑写成自由函数&#xff08;non-mem…

日常运维问题汇总-19

60. OVF3维护成本中心与订货原因之间的对应关系时&#xff0c;报错提示&#xff0c;SYST: 不期望的日期 00/00/0000。消息号 FGV004&#xff0c;如下图所示&#xff1a; OVF3往右边拉动&#xff0c;有一个需要填入的字段“有效期自”&#xff0c;此字段值必须在成本中心定义的有…

2025SCA工具推荐︱基于多模态SCA的新一代开源供应链风险审查与治理平台

近年来&#xff0c;随着开源软件在企业数字化转型中的广泛应用&#xff0c;开源供应链攻击事件频发&#xff0c;企业普遍面临三大突出难题&#xff1a;一是不清楚自身引入了哪些开源组件&#xff0c;二是不掌握组件中潜在的安全漏洞和合规风险&#xff0c;三是缺乏自动化、全流…

CppCon 2017 学习:Migrating a C++03 library to C++11 case study

这段内容是在介绍 Wt&#xff08;发音类似 “witty”&#xff09; —— 一个用于 C 的 Web UI 框架。总结如下&#xff1a; 什么是 Wt&#xff1f; Wt 是一个 用 C 编写的 widget&#xff08;控件&#xff09;驱动的 Web 框架。类似于桌面 GUI 框架&#xff08;比如 Qt&#…

coding习惯 + Bug记录整理

&#x1f4d6; 清单 1、包装类型导致的NPE2、xxApiWrapper命名3、see注释4、MySQL模糊匹配特殊字符bug 整理些平时不好的coding习惯导致的bug&#x1f4dd; 1、包装类型导致的NPE 处理项目的一个bug&#xff0c;看日志是发生了空指针&#xff0c;相关代码如下&#xff1a; D…

机器学习项目微服务离线移植

机器学习项目微服务离线移植 引言&#xff1a;为什么需要Docker化机器学习项目&#xff1f; 在当今的机器学习工程实践中&#xff0c;项目部署与移植是一个常见但极具挑战性的任务。传统部署方式面临着"在我机器上能运行"的困境——开发环境与生产环境的不一致导致…

JS红宝书笔记 8.4 类

与函数类型相似&#xff0c;定义类也有两种主要方式&#xff1a;类声明和类表达式&#xff0c;这两种方式都使用class关键字加大括号 与函数表达式类似&#xff0c;类表达式在它们被求值前也不能引用&#xff0c;不过与函数定义不同的是&#xff0c;虽然函数声明可以提升&…

专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42733 2024年全球游戏市场规模突破1877亿美元&#xff0c;中国以37.5%的全球占比成为核心增长引擎。生成式AI以52%的企业采用率重塑开发流程&#xff0c;混合休闲游戏实现37%的收入增长&#xff0c;跨端互通产品贡献42%增量。玩家行为…

【沉浸式解决问题】Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

目录 一、问题描述二、场景还原1. 测试mapper2. 测试service 三、原因分析四、解决方案1. DemoApplicationTests2. DemoApplication 后记 一、问题描述 在Application文件中加了ComponentScan注解&#xff0c;此后运行任何测试方法均报错 java.lang.IllegalStateException: Fa…

Ubuntu 和 CentOS 中配置静态 IP

在 Ubuntu 和 CentOS 中配置静态 IP 的方法有所不同&#xff0c;主要因为两者使用的网络管理工具不同。以下是详细步骤&#xff1a; Ubuntu&#xff08;18.04 及更新版本&#xff0c;使用 netplan&#xff09; 1. 查看网卡名称 ip a记录网卡名称&#xff08;如 ens33、eth0&a…

4、做中学 | 二年级下期 Golang整型和浮点型

上篇介绍了哪些数据类型&#xff0c;如何进行声明常量和变量&#xff0c;那么接下来进行详细学习下各个数据类型的使用&#xff01; 一、整数 在go中&#xff0c;整数分为俩类&#xff0c;一个是无符号整数&#xff0c;即0以上数值&#xff1b;另一个是有符号数值&#xff0c;…

C++11 GC Interface:从入门到精通

文章目录 一、引言二、C11简介2.1 C11发展历史2.2 C11新特性概述 三、C11中的垃圾收集支持和基于可达性的泄漏检测3.1 背景与原理3.2 相关标准与接口3.3 示例代码 四、C11 GC interface的使用场景4.1 简化内存管理4.2 提高代码可靠性 五、C23中移除垃圾收集支持和基于可达性的泄…

《高并发系统性能优化三板斧:缓存 + 异步 + 限流》

高并发系统性能优化三板斧&#xff1a;缓存 异步 限流 引言 在互联网应用的高并发场景下&#xff0c;系统性能面临巨大挑战。以某电商平台会员活动为例&#xff0c;活动期间瞬时QPS可达10万&#xff0c;若未进行有效优化&#xff0c;服务器将迅速崩溃。本文从缓存、异步、限…

JVM(4)——引用类型

痛点引入&#xff1a; 为什么需要不同的引用类型&#xff1f;直接只用强引用不行吗&#xff1f;&#xff08;内存泄漏风险、缓存管理粗粒度、对象生命周期监听需求&#xff09; 核心作用&#xff1a; 解释引用类型如何让程序员与垃圾收集器&#xff08;GC&#xff09;协作&…

ONLYOFFICE 文档 9.0 版本已发布:新界面、图表查看器、.md 文件支持、AI 表格与宏等更新

ONLYOFFICE 文档 9.0 版本已正式发布。此次更新包含 20 多项新功能和约 500 项修复&#xff0c;全面提升您的办公效率。从全新界面、突破性的 AI 工具到更广泛的文件格式兼容性&#xff0c;本次发布将带来更加流畅的使用体验。阅读本文&#xff0c;了解详情。 更新全部编辑器的…

关于python-socket服务的问题记录

概述 在使用pythonwebsocket部署socket服务&#xff0c;前端使用小程序来连接&#xff0c;过程中存在以下可能出现的问题&#xff1a; 1&#xff0c;代码里socket端口问题2&#xff0c;服务器配置问题&#xff08;域名解析&#xff1f;Nginx配置是否正确处理了WebSocket升级头…