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

Vim 命令大全:从入门到精通

前言:在编程和文本编辑的世界里,Vim 是一款极具传奇色彩的工具。它以其高效、灵活和强大的功能,赢得了无数用户的青睐。无论你是编程老手还是文本编辑新手,掌握 Vim 命令都能让你在编辑文本时如虎添翼。本文将为你全面梳理 Vim 的各类命令,让你轻松驾驭这款强大的编辑器。

Vim 的发展史和简介

  • Vi 的诞生 :Vi 源自 QED 编辑器,其发展历程如下:1966 年,伯克利分时系统的 QED(“Quick EDitor”)出现;1969 年 8 月,QED 发展为 AT&T 的 ed;1976 年 2 月,ed 变为玛丽王后大学的 em(“Editor for Mortals”);1976 年,em 又演变为加州大学伯克利分校的 ex(“EXtended”);1977 年 10 月,ex 出现了可视化模式,即 vi 。
  • 从 vi 到 vim :作为 ed 的衍生物,ex/vi 编辑器的版权属于 AT&T。若想在 Unix 以外的平台上使用 vi,就必须重新编写不使用任何原始代码的克隆版本。1991 年, Bram Moolenaar 在 Amiga 上使用 vi 时,因没有合适版本,便从 Atari 移植了 Stevie 并改进,最初命名为 “Vi IMitation”。1992 年,Vim 1.22 版本的 Vim 被移植到了 UNIX 和 MS-DOS 上,并更名为 “Vi IMproved”。
  • Vim 的发展 :1994 年 8 月 12 日,Vim 3.0 支持多个缓冲区和窗口;1996 年 5 月 29 日,Vim 4.0 推出了图形用户界面;1998 年 2 月 19 日,Vim 5.0 实现语法着色 / 高亮显示;2001 年 9 月 26 日,Vim 6.0 加入折叠、插件、垂直分割等功能;2006 年 5 月 8 日,Vim 7.0 新增拼写检查、自动补齐、撤消分支、标签等功能;2016 年 9 月 12 日,Vim 8.0 引入作业、异步 I/O、本机包等特性。
    在这里插入图片描述

Vim 常见命令分类详解

  • 模式切换命令

    • Esc:从插入模式返回正常模式。
    • i:进入插入模式,在光标前插入文本。
    • a:进入插入模式,在光标后插入文本。
    • o:在光标下一行新建行并进入插入模式。
    • O:在光标上一行新建行并进入插入模式。
    • v:进入可视模式(选择文本)。
    • V:进入可视行模式(选择整行文本)。
    • Ctrl+v:进入可视块模式(选择文本块)。
    • R:进入替换模式(单字符替换)。
  • 文件操作命令

    • :w:保存文件。
    • :q:退出 Vim。
    • :wq:x:保存并退出。
    • :e [文件名]:打开指定文件。
    • :sp [文件名]:水平分屏打开文件。
    • :vsp [文件名]:垂直分屏打开文件。
    • :tabe [文件名]:在新标签页打开文件。
    • :w [文件名]:将当前缓冲区内容写入指定文件。
    • :r [文件名]:读取文件内容到当前缓冲区。
    • :wqall:保存所有缓冲区并退出 Vim。
    • :qa!:强制退出,不保存任何更改。
  • 光标移动命令

    • h:左移光标。
    • j:下移光标。
    • k:上移光标。
    • l:右移光标。
    • Ctrl+f:向下翻页。
    • Ctrl+b:向上翻页。
    • gg:跳转到文件首行。
    • G:跳转到文件尾行。
    • :[行号]:跳转到指定行。
    • 0:移动到行首。
    • $:移动到行尾。
    • w:向前移动到下一个单词首字母处。
    • b:向后移动到上一个单词首字母处。
    • e:向前移动到单词尾处。
    • ge:向后移动到单词尾处。
    • Ctrl+d:向下滚动半页。
    • Ctrl+u:向上滚动半页。
  • 文本编辑命令

    • xdl:删除光标后的字符。
    • dd:删除光标所在的行。
    • ndd:删除从当前行开始的 n 行(n 为具体数字)
    • dw:删除光标所在单词
    • D:删除光标到行尾的内容。
    • u:撤销上一步操作。
    • Ctrl+r:重做撤销的操作。
    • yy:复制光标所在行。
    • nyy:复制光标所在行及其后的 n-1 行。
    • y$:复制光标到行尾的内容。
    • yw:复制光标所在单词。
    • dd:剪切光标所在的行。
    • ndd:剪切光标所在行及其后的 n-1 行。
    • p:在光标下一行粘贴内容。
    • P:在光标上一行粘贴内容。
    • cw:修改当前单词(进入插入模式)。
    • cc:修改当前行(进入插入模式)。
    • r[字符]:用指定字符替换光标处的字符。
    • s:删除光标处字符并进入插入模式。
    • S:删除当前行并进入插入模式。
  • 查找与替换命令

    • /[关键词]:向下查找关键词。
    • ?[关键词]:向上查找关键词。
    • n:查找下一个匹配项。
    • N:查找上一个匹配项。
    • :%s/旧文本/新文本/g:替换全部匹配项。
    • :%s/旧文本/新文本/gc:逐个确认替换。
    • *:查找光标所在单词(向下)。
    • #:查找光标所在单词(向上)。
  • 撤销与重做命令

    • u:撤销上一步操作。
    • Ctrl+r:重做撤销的操作。
  • 复制剪切与粘贴命令

    • yy:复制光标所在行。
    • nyy:复制光标所在行及其后的 n-1 行。
    • y$:复制光标到行尾的内容。
    • yw:复制光标所在单词。
    • yiw:复制光标所在整个单词。
    • dd:剪切光标所在的行。
    • ndd:剪切光标所在行及其后的 n-1 行。
    • p:在光标下一行粘贴内容。
    • P:在光标上一行粘贴内容。
    • "+y"+Y:将文本复制到系统剪贴板。
    • "+p"+P:从系统剪贴板粘贴文本。
  • 窗口切换命令

    • Ctrl+w+w:切换当前窗口。
    • Ctrl+w+j:向下移动到下一个窗口。
    • Ctrl+w+k:向上移动到上一个窗口。
    • Ctrl+w+h:向左移动到上一个窗口。
    • Ctrl+w+l:向右移动到下一个窗口。
    • Ctrl+w+s:水平分割当前窗口。
    • Ctrl+w+v:垂直分割当前窗口。
    • Ctrl+w+= :使所有窗口大小相等。
    • Ctrl+w+_:最大化当前窗口。
    • Ctrl+w+>:增大当前窗口宽度。
    • Ctrl+w+<:减小当前窗口宽度。
    • Ctrl+w++:增大当前窗口高度。
    • Ctrl+w+-:减小当前窗口高度。
  • 标签页操作命令

    • :tabnew [文件名]:打开新标签页。
    • :tabnextgt:切换到下一个标签页。
    • :tabpreviousgT:切换到上一个标签页。
    • :tabfirst:切换到第一个标签页。
    • :tablast:切换到最后一个标签页。
    • :tabclose:关闭当前标签页。
    • :tabm [标签页号]:将当前标签页移动到指定位置。
  • 其他命令

    • :set nu!:切换显示行号。
    • :set wrap!:切换行显示方式。
    • :syntax on/off:开启或关闭语法高亮。
    • :! 命令:在 shell 下执行命令。
    • :q!:强制退出不保存。
    • :set ignorecase:忽略搜索大小写。
    • :set smartcase:智能区分搜索大小写(如果搜索词中有大写字母,则区分大小写)。
    • :set incsearch:开启实时搜索高亮。
    • :set ruler:显示光标所在行和列。
    • :set numberwidth=[宽度]:设置行号显示宽度。

Vim 寄存器的分类与操作

在 Vim 中,寄存器就像是一个个存储文本片段的小仓库,它极大地扩展了 Vim 复制、粘贴等操作的灵活性。通过使用寄存器,你可以实现复杂的文本操作,比如同时保存多个文本片段,并在需要的时候有选择地粘贴。
寄存器的分类

  1. 默认寄存器 (“”) :这是 Vim 最常用的寄存器。当你执行普通的复制(yy)、删除(dd)操作时,文本会被自动放入默认寄存器。例如,输入 dd 删除一行,该行内容就存储在默认寄存器中,之后输入 p 粘贴时,也是从默认寄存器取出内容进行粘贴。
  2. 命名寄存器 (a - z, A - Z) :Vim 提供了 26 个小写字母和 26 个大写字母命名的寄存器,共 52 个。你可以将文本显式地放入这些命名寄存器中,方便后续有针对性地粘贴。比如,使用 "ayy 可以将当前行复制到 a 寄存器中;使用 "ap 则从 a 寄存器中取出内容进行粘贴 。大写命名寄存器和小写命名寄存器的区别在于,大写命名寄存器在执行删除操作时,会将内容追加到寄存器原有内容之后,而小写命名寄存器会覆盖原有内容。
  3. 数字寄存器 (0 - 9) :数字寄存器用于存储最近删除(x、dd 等)或复制(y)的文本。其中,0 寄存器存储最近一次复制的内容,1 - 9 寄存器依次存储最近 9 次删除的内容。例如,连续执行 3 次 dd 删除操作后,第三次删除的内容在 0 寄存器,第二次删除的在 1 寄存器,第一次删除的在 2 寄存器。
  4. 行内删除寄存器 (-) :当你使用 x、dw 等命令删除行内部分文本时,删除的内容会被放入行内删除寄存器。这个寄存器的特点是,当你执行粘贴操作时,不会影响默认寄存器和其他主要寄存器的内容。比如,使用 dw 删除一个单词后,使用 " - p 可粘贴该行内删除的单词,而此时默认寄存器的内容不受影响。
  5. 只读寄存器 (:、/、?、.) :这类寄存器存储了一些特殊信息。: 寄存器保存最近一次在命令行模式下输入的命令;/? 寄存器分别保存最近一次向前和向后搜索的模式;. 寄存器存储当前行的内容 。这些寄存器的内容只能读取,不能写入。
  6. 表达式寄存器 (=) :表达式寄存器允许你执行 Vim 脚本表达式,并将表达式的结果作为粘贴内容。例如,输入 ":=1 + 2<CR>p,会先计算 1 + 2 的结果 3,然后将 3 粘贴到光标位置。

寄存器的常用操作

  1. 将内容放入寄存器 :在命令模式下,在普通操作命令前加上 " 和寄存器名称,即可将操作的内容存入指定寄存器。除了前面提到的 "ayy 复制到 a 寄存器,还有如 "bdw 表示删除光标所在单词,并将其存入 b 寄存器。
  2. 从寄存器中取出内容粘贴 :同样在命令模式下,使用 " 加上寄存器名称,再加上粘贴命令(p 或 P)。例如,从 c 寄存器中取出内容并粘贴到光标后,可输入 "cp ;粘贴到光标前则输入 "cP
  3. 查看寄存器内容 :在 Vim 中,可以通过 :reg 命令查看所有寄存器的内容。执行该命令后,Vim 会列出各个寄存器及其存储的文本片段,方便你了解当前寄存器的使用情况。

掌握 Vim 寄存器的使用,能够让你在文本编辑过程中更加游刃有余,实现许多原本难以完成的复杂操作。随着不断实践,你会发现寄存器是 Vim 强大功能不可或缺的一部分。

总结

以上内容涵盖了 Vim 的基础操作、文件编辑、文本处理、代码编写与调试等多方面的命令。通过学习和熟练运用这些命令,你可以大大提高在 Vim 中的工作效率。在实际使用中,你还可以根据自己的需求和习惯,进一步探索和挖掘更多实用的 Vim 命令和技巧。无论是寄存器的灵活运用,还是各类命令的熟练组合,都能让你在文本编辑的道路上越走越远,越走越快。

vim命令小抄1:

在这里插入图片描述

vim命令小抄2:

在这里插入图片描述

相关文章:

  • 每日一博 - JWT 安全实战指南
  • 机器学习×第七卷:正则化与过拟合——她开始学会收敛,不再贴得太满
  • Nodejs特训专栏-基础篇:2. JavaScript核心知识在Node.js中的应用
  • 数据信号处理方法三板斧
  • 保诚发布PRUD币,重塑Web3健康金融生态版图
  • 「ECG信号处理——(17)基于小波熵阈值的R峰检测(与时域-频域-多尺度小波法对比)」2025年6月12日
  • 当卷积作用于信号处理
  • 电脑、手机长时间不关机可以吗
  • c语言接口设计模式之抽象算法,以冒泡排序为例
  • 3D 展示崛起:科技赋能的新变革
  • 桥接模式(Bridge Pattern)
  • CQL3D编译指南
  • 2025 TechViz 新功能:3D协作,技术进化,体验升级
  • CQL3D输入文件及参数解释
  • qemu-kvm+virt-manager创建虚拟机设置桥接模式
  • 记录一个大模型逐层微调计算损失输出少了一个维度的小bug
  • Go语言高并发爬虫程序源码
  • 软件测试BUG
  • 在Ubuntu中使用Apache2部署项目
  • Vivado libtinfo.so.5
  • 服务器 做网站/成人职业培训学校
  • 网站优化外链怎么做/网络seo是什么工作
  • 兼职网站哪个靠谱/网站加速
  • 网站加油站/长沙网动网络科技有限公司
  • 网站推广方式方法/网络营销策划案怎么写
  • 成都地区网站建设/江北关键词优化排名seo