标签 Vim 下的文章

前言
“我又装了个插件”——如果你把这句话挂在嘴边,请先停一停。Neovim 0.9+ 的出厂配置里,其实藏着一批“零依赖、零配置、零成本”的高效利器。今天这 10 招,全部即可复现,学会后至少能卸载 3 个插件,减少 20% 的按键量。建议收藏+反复练习,直到肌肉记忆。
Neovim的10个内置功能,这些功能在默认配置下即可使用,无需安装任何插件。这些功能可以帮助用户更高效地使用Neovim进行文本编辑。
image.png
10个内置功能详细说明

  1. Shell Filter
    功能描述:通过外部命令处理文本,可以使用任何Unix工具作为文本处理器。
    示例命令:
    i. :.!date:用日期输出替换当前行。
    ii. !ip sort:对段落进行排序。
    iii. !ap jq .:格式化段落中的JSON。
    iv. :%!column -t:对整个文件进行对齐。
  2. Visual Block Increment(可视块增量)
    功能描述:在可视块中创建递增序列。选择一列零,按下g Ctrl-a,即可生成即时编号列表。
  3. Global Command(全局命令)
    功能描述:在所有匹配的行上运行Ex命令,进行批量操作。
    示例命令:
    i. :g/TODO/d:删除所有包含“TODO”的行。
    ii. :g/^$/d:删除所有空行。
    iii. :g/error/t$:将包含“error”的行复制到文件末尾。
    iv. :g/func/norm A;:在所有函数末尾添加分号。
    image.png
  4. Command-line Registers(命令行寄存器)
    功能描述:在:或/提示符中插入寄存器内容。
    快捷键及功能:
    i. Ctrl-r Ctrl-w:插入光标下的单词。
    ii. Ctrl-r ":插入上次剪切的内容。
    iii. Ctrl-r /:插入上次搜索模式。
    iv. Ctrl-r =:插入表达式结果。
  5. Normal on Selection(在选择上运行正常模式命令)
    功能描述:在每行选中的文本上运行正常模式命令,实现类似多光标的操作。
    示例命令:
    i. :'<,'>norm A,:在每行末尾添加逗号。
    ii. :'<,'>norm I#:在每行开头添加#。
    iii. :'<,'>norm @q:在每行上运行宏。
  6. The g Commands(g命令)
    功能描述:提供一系列以g开头的快捷命令。
    命令及功能:
    i. gi:跳转到最后一次插入位置并进入插入模式。
    ii. g;:跳转到上一次更改的位置。
    iii. g,:跳转到下一次更改的位置。
    iv. gv:重新选择上次的可视选择。
    image.png
  7. Auto-Marks(自动标记)
    功能描述:Vim会自动跟踪一些位置。
    标记及功能:
    i. :跳转到上一个位置(可以来回切换)。复制
    ii. `.:跳转到最后一次更改的位置。
    iii. ":跳转到文件上次关闭时的位置。
    iv. [/]:跳转到上次剪切或更改的开始/结束位置。
  8. Command History Window(命令历史窗口)
    功能描述:在缓冲区中显示可编辑的命令历史。q:打开命令历史窗口,q/打开搜索历史窗口。可以在其中编辑任何行,按下Enter执行。
  9. Live Substitution Preview(实时替换预览)
    功能描述:在执行替换之前查看替换结果。将以下内容添加到配置文件中:vim.opt.inccommand = "split"。
    image.png

    1. Copy/Move Lines(复制/移动行)

    功能描述:无需接触寄存器即可复制或移动行。
    命令及功能:
    i. :t.:将当前行复制到下方。
    ii. :t0:将当前行复制到文件顶部。
    iii. :m+2:将当前行移动到下方两行。
    iv. :'<,'>t.:将选中的内容复制到下方。
    这些功能的文本版本,链接为:https://github.com/Piotr1215/youtube/blob/main/10-nvim-tricks/presentation.md
    配置文件可以在以下链接中找到:
    https://github.com/Piotr1215/dotfiles
    Neovim 的“原生力”远远被低估。把内置招式练到条件反射,再决定是否上插件,你会发现——
    “插件是锦上添花,而不是救命稻草。”
    如果本文对你有帮助,记得点赞+评论+关注,Codigger是一款基于Vim开发的项目,欢迎喜欢Vimming的伙伴们一起来玩。

从 继续讨论,咕咕咕了一个月终于迎来了又一个大版本~

Abstract

交互式学习 Vim,每一个技巧都能提高编辑效率~

更新内容

v2.0 相比于 v1.5 主要更新了:

  1. 新增亮色主题
  2. 新增 HJKL 贪吃蛇趣味练习
  3. 增加 Vim 引擎的长序列对拍测试,提升 Vim 行为模拟准确性
  4. 使用优选域名提升全球访问速度
  5. 修复佬友们指出的文案 & vim 行为的 bug 若干

特色 & 开发动机 & 课程内容

详见前帖:

Vim 功能支持情况

当前处于 v2.0.0 版本,已实现功能如下。还在持续迭代中

迭代开发

现在项目仍有一些 bug 和不完善的地方(包括但不限于文案不易于理解、Vim 编辑器与真实行为不一致等),欢迎佬友们试用之后在楼内或者 issue 区反馈

衷心感谢如下佬友为这个项目提出宝贵的意见和建议!

@l39 @kika @GoldenZqqq @sodacola


Tip

觉得不错的话就帮我点个 Star​吧~

TODO & CHANGELOG

v2.0.0

  • hjkl 贪吃蛇
  • alpha 分支选择
  • 亮色模式

v2.1.0

  • 优化字体(i/l 混淆问题)
  • 修复文案问题
  • 光标渲染问题

v2.2.0

  • VimEngine bug
    • 撤销不识别
    • s 替换渲染
  • ESC 焦点问题
  • 自动化排查 run-example 文案

Release v2.0.0

  • 新增主题切换:亮 / 暗 / 跟随系统(Settings → Appearance),并重构配色系统为 CSS design tokens + Tailwind 语义色映射
  • 新增 Chapter 1 末尾小游戏:HJKL 贪吃蛇(本地成绩、金银铜徽章与提示、按 r 重开、撞墙宽限)
  • 对拍与测试工具链完善:quickcheck、JSON 报告 + viewer(聚合 / 过滤 / 排序),对拍并行化与长序列对拍覆盖
  • Vim 引擎与课程维护:dot/count/o/O/replace/paste 等对齐 Neovim;修复课程文件大小写冲突并补齐 zh/zh-lively 翻译

Release v1.5.0

  • Vim 引擎对拍:. 重播(cw/paste/ 末行 jw)、多行寄存器行粘贴、撤销快照去重与 cw 边界全面对齐 Neovim
  • 可视化提升:按键历史面板 + Vim Status 面板,组合键聚合、实时记录与 dot 重播提示一致
  • 输入与体验:Insert 模式中文输入可用,Tooltip 抖动修复,课程切换重新挂载消除键位提示重复
  • 学习流优化:挑战目标与示例文案更清晰(助记 / 拼写练习),Run Example / 课程示例节奏更平滑

Release v1.0.0

  • 首个正式版本,实现主要功能
  • 新增设置面板「Vim 状态」和「练习场」标签页(支持 C++/JS/Python 语法高亮,展示 Neovim 对拍测试结果)
  • 修复 Insert 模式光标位置和挑战切换状态重置等核心 bug
  • 改进学习体验:记住上次学习位置,支持 Enter 快速进入下一课


Alpha 版

bug 修复与新功能预览


来晒一晒你的 Vim + 贪吃蛇水平吧!


📌 转载信息
转载时间:
2025/12/31 12:42:00