当前位置: 首页 > news >正文

vim 常用快捷键汇总

学习过程中还是觉得 vim 好用,所以让查老师总结了一份常用操作,加油 😃

核心哲学:模式化编辑

首先要理解 Vim 的不同模式,这是所有快捷键的基础:

  1. 普通模式 (Normal Mode):默认模式。用于移动光标、复制、粘贴、删除等操作。按 Esc 键从任何其他模式返回。
  2. 插入模式 (Insert Mode):用于输入文本。从普通模式按 i (insert), a (append), o (open new line) 等键进入。
  3. 可视模式 (Visual Mode):用于选择文本。从普通模式按 v (字符选择), V (行选择), Ctrl+v (块选择) 进入。
  4. 命令模式 (Command Mode):用于执行命令(如保存、退出、搜索替换)。从普通模式按 : 进入。

一、移动光标 (普通模式下)

基本移动 (HJKL)
  • h - 左
  • j - 下
  • k - 上
  • l - 右
单词移动
  • w - 移动到下一个单词开头
  • e - 移动到当前或下一个单词末尾
  • b - 移动到上一个单词开头
  • ge - 移动到上一个单词末尾
  • W, E, B - 以空格分隔的“大字”单词为单位移动(更快)
行内移动
  • 0 - 移动到行首
  • ^ - 移动到本行第一个非空白字符
  • $ - 移动到行尾
  • g_ - 移动到行尾非空白字符
  • f{字符} - 向前搜索并移动到某个字符(如 fa 移动到下一个字母 ‘a’)
  • F{字符} - 向后搜索并移动到某个字符
  • t{字符} - 移动到某个字符之前
  • T{字符} - 反向移动到某个字符之前
  • ; - 重复上一次 f, t, F, T 操作
  • , - 反向重复上一次操作
屏幕移动
  • gg - 移动到文件第一行
  • G - 移动到文件最后一行
  • :{行号} - 移动到指定行(如 :55 跳到第55行)
  • Ctrl + f - 向下翻一页
  • Ctrl + b - 向上翻一页
  • Ctrl + d - 向下翻半页
  • Ctrl + u - 向上翻半页
  • H - 移动到当前屏幕的顶部
  • M - 移动到当前屏幕的中间
  • L - 移动到当前屏幕的底部
  • zz - 将当前行置于屏幕中央

二、编辑操作

进入插入模式
  • i - 在光标前插入
  • a - 在光标后插入
  • I - 在行首插入
  • A - 在行尾插入
  • o - 在当前行下方新建一行并插入
  • O - 在当前行上方新建一行并插入
  • s - 删除当前字符并插入
  • S - 删除当前行并插入
  • C - 删除从光标到行尾的内容并插入(相当于 c$
删除/剪切 (配合文本对象,威力无穷)
  • x - 删除当前字符
  • X - 删除前一个字符
  • d{motion} - 删除移动命令所覆盖的文本(核心命令
    • dw - 删除到下一个单词开头
    • de - 删除到单词末尾
    • d$ / D - 删除到行尾
    • d0 - 删除到行首
    • dd - 删除整行
    • dgg - 删除到文件开头
    • dG - 删除到文件结尾
  • {数字}dd - 删除多行(如 3dd 删除3行)
复制 (Yank)
  • y{motion} - 复制移动命令所覆盖的文本
    • yw - 复制一个单词
    • yy / Y - 复制整行
    • y$ - 复制到行尾
  • {数字}yy - 复制多行
粘贴 (Put)
  • p - 在光标粘贴
  • P - 在光标粘贴
撤销与重做
  • u - 撤销
  • Ctrl + r - 重做

三、文本对象 (超级强大!)

操作 d (删除), y (复制), c (修改), v (选择) 的利器。

  • i + 对象 - inside,操作对象内部的文本
  • a + 对象 - around,操作对象以及周边的文本(比如包括引号本身)

常用对象:

  • w - 单词
  • s - 句子
  • p - 段落
  • ', ", ` - 引号
  • (, ), b - 小括号 ( )
  • [, ] - 中括号 [ ]
  • {, }, B - 大括号 { }
  • t - XML/HTML 标签

示例:

  • diw - 删除光标所在的单词(不包括周围空格)
  • ci" - 修改双引号内的内容(删除并进入插入模式)
  • yap - 复制整个段落
  • vat - 选择整个 XML/HTML 标签及其内容

四、查找与替换

查找
  • /pattern - 向下搜索模式
  • ?pattern - 向上搜索模式
  • n - 继续下一个匹配项
  • N - 继续上一个匹配项
  • * - 向下搜索光标所在的单词
  • # - 向上搜索光标所在的单词
替换 (命令模式)
  • :s/old/new - 将当前行的第一个 old 替换为 new
  • :s/old/new/g - 将当前行的所有 old 替换为 new
  • :%s/old/new/g - 将全文的所有 old 替换为 new
  • :%s/old/new/gc - 全文替换,但每次替换前需要确认
  • :起始行,结束行s/old/new/g - 在指定行范围内替换(如 :10,20s/foo/bar/g

五、可视模式 (Visual Mode)

  • v - 进入字符可视模式
  • V - 进入行可视模式
  • Ctrl + v - 进入块可视模式(列模式)
  • 选中文本后,可以使用所有普通模式的编辑命令:d, y, c, :s/old/new/

六、窗口与标签页

窗口分割
  • :sp [文件名] - 水平分割窗口
  • :vsp [文件名] - 垂直分割窗口
  • Ctrl + w w - 在窗口间循环切换
  • Ctrl + w h/j/k/l - 切换到左/下/上/右的窗口
  • Ctrl + w = - 使所有窗口等宽等高
  • Ctrl + w _ - 最大化当前窗口高度
  • Ctrl + w | - 最大化当前窗口宽度
  • Ctrl + w c / :q - 关闭当前窗口
  • Ctrl + w o - 关闭其他所有窗口
标签页
  • :tabnew [文件名] - 新建标签页
  • :tabc - 关闭当前标签页
  • :tabo - 关闭其他所有标签页
  • gt / :tabn - 切换到下一个标签页
  • gT / :tabp - 切换到上一个标签页
  • {数字}gt - 切换到第 N 个标签页

七、其他常用命令

  • .% - 跳转到匹配的括号 (), {}, []
  • . - 重复上一次修改操作(极其强大)
  • J - 将下一行合并到当前行(连接行)
  • Ctrl + a - 将光标下的数字增加 1
  • Ctrl + x - 将光标下的数字减少 1
  • :r 文件名 - 将文件内容插入到光标下方
  • :r !命令 - 将命令的执行结果插入到光标下方(如 :r !date 插入当前日期)

学习建议

  1. 不要死记硬背:打开 vimtutor(在终端输入此命令),它是官方的最佳入门教程。
  2. 循序渐进:先熟练掌握移动 (h/j/k/l, w/b, gg/G)、进入插入模式 (i/a/o)、保存退出 (:wq)、撤销 (u)。
  3. 实践为主:在日常编辑中强迫自己使用,哪怕开始很慢。
  4. 掌握组合技:理解 操作符 + 动作命令 的模式(如 d + w = dw)。这是 Vim 的灵魂。
  5. 探索文本对象:这是让你从 Vim 新手进阶为高手的关键。

文章转载自:

http://M4DYJCKe.ndxmn.cn
http://M7Nfg6Dq.ndxmn.cn
http://BN38PhQb.ndxmn.cn
http://bvd2pu1Q.ndxmn.cn
http://AnTUi2Bo.ndxmn.cn
http://m64Z8sYQ.ndxmn.cn
http://sMObmPdj.ndxmn.cn
http://vhUH44yR.ndxmn.cn
http://YRwujKzW.ndxmn.cn
http://UDG98Qwy.ndxmn.cn
http://rwfdkidl.ndxmn.cn
http://g9krCHaH.ndxmn.cn
http://fFcv8CYw.ndxmn.cn
http://MbDR7Hik.ndxmn.cn
http://2sEJN8ve.ndxmn.cn
http://YpbgNy8Y.ndxmn.cn
http://1zI4IafN.ndxmn.cn
http://3qNfYGOD.ndxmn.cn
http://NVp9SkK7.ndxmn.cn
http://GcrXiGWu.ndxmn.cn
http://I25pVvoT.ndxmn.cn
http://SHOGeCPG.ndxmn.cn
http://iWfO3sJV.ndxmn.cn
http://HPJq4hAG.ndxmn.cn
http://FVm3FrAk.ndxmn.cn
http://aXGJidFB.ndxmn.cn
http://eDNZik4Z.ndxmn.cn
http://c1A9TtPm.ndxmn.cn
http://52mHs6Pz.ndxmn.cn
http://d4mLs8Fu.ndxmn.cn
http://www.dtcms.com/a/369747.html

相关文章:

  • 1.进程与线程:区别、通信方式、同步方式
  • The Algorithmic Foundations of Differential Privacy - 4
  • 各种背包问题简述
  • Python反向迭代完全指南:从基础到高性能系统设计
  • CRYPT32!ASN1Dec_SignedDataWithBlobs函数分析之CRYPT32!ASN1Dec_AttributesNC的作用是得到三个证书
  • vcenter管理的4台安装了esxi机器组成的HA,故障后自恢复理解
  • 智慧医疗——解读医院智慧管理分级评估标准体系【附全文阅读】
  • C++ map和set
  • js闭包问题
  • 【教学类-36-10】20240905(通义万相)-A4各种大小的鱼制作“吐泡泡的鱼”01版
  • 【工具变量】上市公司企业海外业务收入数据集(2003-2024年)
  • 从技术选型到现场配置:DDC 楼宇自控系统全流程落地方案(2025 版)
  • 阿里云ecs 2h2g 实际可用内存不足的情况
  • 【React】性能提升方案:Reat.memo, useMemo,useCallback用法详解
  • 文心快码已支持Kimi-K2-0905模型
  • 6.ImGui-颜色(色板)
  • biocmanager安装 库 老是提示网络连接错误 才尝试各种办法
  • 雨后阳光为何更强烈?
  • 数据加盐处理(密码加盐)
  • 本地 Ai 离线视频去水印字幕!支持字幕、动静态水印去除!
  • 文件不展示Eslint的报错红色
  • vggt代码详解
  • 使用海康威视 SDK 实现软触发拍照(C语言完整示例 + 中文注释)
  • 本科论文抽检档案整理:Python批量文件查找、打包、改名
  • 【Day 22】94.二叉树的中序遍历 104.二叉树的最大深度 226.翻转二叉树 101.对称二叉树
  • swing笔记
  • IPD模式下跨部门团队管理
  • Transformer核心—自注意力机制
  • 可搜索且多选的下拉式列表
  • 《C++ printf()函数的深度解析》