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

vim学习使用笔记

我背叛了 Neovim ?! 和我一起配置 VSCode 吧_哔哩哔哩_bilibili

Vim 命令语言入门

Vim 的命令模式通常遵循这样的结构:{操作符} + {计数} + {动作/文本对象}

  1. 操作符(Operator):这部分决定了你要对文本做什么。例如:

    • d:删除 (delete) 。

    • c:修改 (change) 。

    • y:复制 (yank) 。

    • g~:切换大小写 (switch case) 。

    • >:增加缩进

    • <:减少缩进

  2. 文本对象(Text Object):这部分决定了操作的范围。文本对象是 Vim 对代码或文本中逻辑单元的抽象,例如单词、句子、段落、括号内的内容等 。文本对象通常由两个字母组成:

    • i (inner):表示“内部”,即不包括周围的空白或分隔符 。
    • a (around):表示“整个”,即包括周围的空白或分隔符 。

    一些常用的文本对象包括:

    • w:单词 (word) 。
    • p:段落 (paragraph) 。
    • ():括号内部 。
    • {}:花括号内部 。
    • []:方括号内部 。
    • ":引号内部 。
  3. 计数(Count):这个是可选的,表示重复操作的次数 。

将这三个部分结合起来,你就可以通过组合来创建任何你想要的复杂指令。

例如,以 diw 为例:

  • d:操作符,表示“删除”。
  • i:文本对象的前缀,表示“内部”。
  • w:文本对象,表示“单词”。

所以,diw 的意思就是“删除光标所在的内部单词” 。它会删除单词本身,但会保留单词前后的空格 。

如果将 i 换成 a,指令就变成了 daw

  • d:删除。
  • a:整个。
  • w:单词。

daw 的意思就是“删除光标所在的整个单词”,包括它后面的一个空格 。

再比如,cip

  • c:操作符,表示“修改”。
  • i:文本对象的前缀,表示“内部”。
  • p:文本对象,表示“段落”。

cip 的意思是“修改光标所在的内部段落” 。它会删除整个段落的内容,并让你进入插入模式,但会保留段落之间的空行 。

通过这种方式,你可以将 Vim 的指令看作一种简单的“语法”,而不是毫无关联的按键组合。一旦你掌握了这种组合逻辑,就可以轻松地推导出和记忆各种指令,从而大大提高编辑效率。

类别 命令 描述 示例
模式切换 i insert,在光标前进入插入模式 i 用于开始输入文本
a append,在光标后进入插入模式
I 在当前行第一个非空字符处进入插入模式
A 在当前行末尾进入插入模式
o open,在下方新行进入插入模式
O 在上方新行进入插入模式
v visual,进入字符可视模式 vd 删除选中内容
V Visual Line,进入行可视模式 Vy 复制选中行
<C-V> Ctrl + V,进入块可视模式 <C-V>jj 选中一个矩形文本块
<ESC> Escape,返回普通模式 <ESC> 是最常用的退出键
导航 h, j, k, l 左, 下, 上, 右 10j 向下移动 10 行
w, b, e 按单词前移/后移/移到词尾 3w 向前移动 3 个单词
0, ^, ` 类别 命令
-------------- ---------------------- ------------------------------------------------ ---------------------------------------
模式切换 i insert,在光标前进入插入模式 i 用于开始输入文本
a append,在光标后进入插入模式
I 在当前行第一个非空字符处进入插入模式
A 在当前行末尾进入插入模式
o open,在下方新行进入插入模式
O 在上方新行进入插入模式
v visual,进入字符可视模式 vd 删除选中内容
V Visual Line,进入行可视模式 Vy 复制选中行
<C-V> Ctrl + V,进入块可视模式 <C-V>jj 选中一个矩形文本块
<ESC> Escape,返回普通模式 <ESC> 是最常用的退出键
导航 h, j, k, l 左, 下, 上, 右 10j 向下移动 10 行
w, b, e 按单词前移/后移/移到词尾 3w 向前移动 3 个单词
      \| 移动到行首/第一个非空字符/行尾                   \| `$` 将光标移到行尾                      |

| | gg, G | 移动到文件首行/尾行 | 20G 跳转到文件的第 20 行 |
| | H, M, L | 移动到屏幕的顶部/中间/底部 | |
| | f{char}, t{char} | 移动到下一个 {char} 字符 / 的前一个位置 | fa 移动到下一个 'a' 字符 |
| | ;, , | 正向 / 反向重复上一次的 ft 操作 | |
| | } | 向下移动一个段落(到下一个空行) | |
| | { | 向上移动一个段落(到上一个空行) | |
| 编辑 | d, c, y | delete (删除), change (修改), yank (复制) 操作符 | dw 删除一个单词, ci" 修改引号内文本 |
| | p, P | 在光标后 / 前粘贴 | p 在光标后粘贴 |
| | x | 删除光标下的字符 | xp 交换两个字母 |
| | r | replace,替换光标下的单个字符 | ra 将光标下的字符替换为 'a' |
| | R | 进入替换模式,连续替换字符直到按 <ESC> | R 开始连续替换 |
| | s | 替换光标下的字符并进入插入模式 | |
| | . | 重复上一次的修改命令 | |
| 行操作 | dd, yy, cc | 删除 / 复制 / 修改当前行 | 2dd 删除 2 行 |
| | u | undo,撤销 | u 撤销上次修改 |
| | <C-R> | Ctrl + Redo,重做 | |
| | >>, << | 增加 / 减少当前行缩进 | 3>> 增加 3 行的缩进 |
| 搜索与替换 | /pattern, ?pattern | 向下 / 向上搜索 pattern | /hello 搜索 "hello" |
| | n, N | 跳转到下一个 / 上一个搜索结果 | |
| | :s/old/new/ | 替换当前行第一个 oldnew | |
| | :s/old/new/g | 替换当前行所有 oldnew | |
| | :%s/old/new/g | 在整个文件中全局替换所有 oldnew | :%s/foo/bar/g |
| | :'<,'>s/old/new/g | 在可视模式选中的行内替换所有 oldnew | |
| | :%s/old/new/gc | 全局替换,但每次替换前会请求确认 | |
| 屏幕管理 | zz | 将当前行置于屏幕中央 | |
| | zt | 将当前行置于屏幕顶部 (top) | |
| | zb | 将当前行置于屏幕底部 (bottom) | |
| | <C-E> | 向下滚动一行 (光标逻辑位置不变) | |
| | <C-Y> | 向上滚动一行 (光标逻辑位置不变) | |
| 窗口管理 | :sp, :vsp | 水平 / 垂直分割窗口 | |
| | <C-w>w | 在窗口之间循环切换 | |
| | <C-w>h/j/k/l | 切换到左/下/上/右侧的窗口 | |
| | :q | 关闭当前窗口 | |
| 命令行模式 | :w | write,保存文件 | :wq 保存并退出 |
| | :q! | quit,强制退出(不保存) | :qall 退出所有文件 |
| | :e {file} | edit,编辑一个文件 | :e newfile.txt |

显示变量:gh

折叠代码:za

http://www.hskmm.com/?act=detail&tid=20202

相关文章:

  • c#造个轮子-取色器TakeColor(附源码)
  • 实用指南:计算机视觉:人脸关键点定位与轮廓绘制
  • JVM调优工具详解及调优实战
  • 双链表
  • ubuntu系统挂载硬盘
  • 代码之美-代码整洁之道
  • Chrome for Testing availability
  • RAG实践:一文掌握大模型RAG过程
  • 递归算法实践--到仓合单助力京东物流提效增收
  • 计算机视觉(opencv)练习——抠图(图像裁剪与轮廓提取) - 详解
  • 深入解析:@scqilin/phone-ui 手机外观组件库
  • Tita项目与绩效一体化管理:驱动企业效能跃升的数字化引擎
  • 第七篇
  • labview打包应用
  • Day23抽象类
  • ES 是否有类似mysql explain的语句诊断用法
  • 让每次语音唤醒都可靠,公牛沐光重构可观测体系
  • 【2025-09-27】连岳摘抄
  • Python 爬虫 HTTPS 实战,requests httpx aiohttp 抓取技巧、证书问题与抓包调试全流程 - 教程
  • Codeforces 补题笔记
  • 使用 Python 基于Ollama构建个人私有知识库(AI生成)
  • Codeforces Round 1048 (Div. 2) 补题笔记
  • 【RabbitMQ】消息可靠性保障
  • React学习笔记(一)
  • Day23static详解
  • 11.prometheus监控之黑盒(blackbox)监控
  • Python虚拟环境及创建和使用虚拟环境(Python3)
  • 团队协作必备:16款在线协同编辑文档方案对比
  • 变电站、开闭所、环网柜、配电站
  • 为AI注入灵魂:一种面向人机黑箱的元人文治理新范