Fuquanyou Blog记录技术与生活
返回列表

vim的基础操作

发布于 2026/04/18 · 公开

Vim 操作逻辑

Vim 的操作逻辑更像一门语言:

[次数] + [操作] + [范围]

👉 核心原则:

不用鼠标,少按退格键


🧪 示例文本(所有操作基于它)

function greet(name) {
  const message = "hello " + name;
  console.log(message);
  return message;
}

一、单词级操作

场景 命令 结果
删除一个单词(光标在 const dw const 被删除 → message = "hello " + name;
删除当前单词(光标在 greet diw function (name)
修改单词(光标在 hello cwHi<Esc> "Hi " + name
修改引号内内容 ci"Hi Vim<Esc> "Hi Vim" + name
复制当前单词 yiw + p greetgreet

二、行级操作

场景 命令 结果
删除整行(console.log) dd 该行消失
删除3行 3dd 当前行 + 下2行被删除
复制一行 yy + p 当前行复制一份
删除到行尾 d$ 行尾内容被清空
复制到行尾 y$ 复制 "hello " + name;

三、代码块 / 段落操作

场景 命令 结果
删除整个函数 dip 整段代码被删除
删除到代码块结束 d} 从当前位置删到 }
修改整个代码块 ci{...} 替换函数体
删除括号内容 di( (name)()

四、复制与粘贴

场景 命令 结果
粘贴到后面 p 内容插入到光标后
粘贴到前面 P 内容插入到光标前
行复制粘贴 yy + p 当前行复制一份

五、全文操作

场景 命令 结果
全选复制 ggyG 整个文件复制
全部删除 ggdG 文件清空

六、格式化与缩进

场景 命令 结果
当前行对齐 == 自动缩进
全文格式化 gg=G 整体代码对齐
向右缩进 >> 行向右移动
向左缩进 << 行向左移动
段落格式化 gqip 自动换行

七、可视模式

场景 命令 结果
字符选择 v 选中字符
行选择 V 选中整行
块选择 Ctrl+v 列编辑(多行操作)
批量注释 Ctrl+v → Shift+i → // 多行前加 //

🧠 一句话总结

Vim = 操作符 + 范围

例如:

  • d + w
  • c + i"
  • y + ap