vim学习命令

This commit is contained in:
bunny 2025-05-31 19:45:50 +08:00
parent 96420e93d7
commit 0b599dfea3
2 changed files with 169 additions and 0 deletions

60
Vim/vim1.md Normal file
View File

@ -0,0 +1,60 @@
## **1. 基础移动Navigation**
- **字符移动**
- `h` ← / `j` ↓ / `k` ↑ / `l`
- 方向键也能用,但 Vim 提倡用 `hjkl` 保持手不离键盘。
- **单词移动**
- `w` → 跳到下一个单词开头
- `b` ← 跳到上一个单词开头
- `e` → 跳到当前单词末尾
- **行内跳转**
- `0` 跳到行首,`^` 跳到第一个非空字符
- `$` 跳到行尾
- `f<char>` 向后搜索字符(如 `fa` 跳到下一个 `a`
- **屏幕移动**
- `Ctrl + u` 上翻半屏,`Ctrl + d` 下翻半屏
- `gg` 跳到文件开头,`G` 跳到文件末尾
- `:<行号>` 跳转到指定行(如 `:42` 跳到第 42 行)
---
## **2. 编辑文本Editing**
- **插入模式**
- `i` 在光标前插入
- `a` 在光标后插入
- `I` 在行首插入,`A` 在行尾插入
- `o` 在下一行插入,`O` 在上一行插入
- **删除**
- `x` 删除当前字符
- `dw` 删除一个单词
- `dd` 删除整行
- `D` 删除从光标到行尾
- **复制/粘贴**
- `yy` 复制当前行
- `p` 粘贴到光标后,`P` 粘贴到光标前
- `yiw` 复制当前单词
- **撤销/重做**
- `u` 撤销
- `Ctrl + r` 重做
---
## **3. 选择与可视化模式Visual Mode**
- `v` 进入字符选择模式
- `V` 进入行选择模式
- `Ctrl + v` 进入块选择模式(适合多行编辑)
- 选中后可以用 `d`(删除)、`y`(复制)、`>`(缩进)等操作
---
## **4. 搜索与替换Search & Replace**
- `/` + 关键词 → 搜索(`n` 下一个,`N` 上一个)
- `:%s/old/new/g` → 全局替换(`g` 表示所有匹配)
- `*` 快速搜索当前光标下的单词
---
## **5. 组合命令Power Moves**
- `di"` → 删除引号内的内容
- `ciw` → 修改当前单词
- `dt<char>` → 删除直到某个字符(如 `dt)` 删除到 `)`
- `.` → 重复上一次操作

109
Vim/vim2.md Normal file
View File

@ -0,0 +1,109 @@
## 基本移动命令
| 命令 | 描述 |
| ------ | -------------------------- |
| `h` | 向左移动 |
| `j` | 向下移动 |
| `k` | 向上移动 |
| `l` | 向右移动 |
| `w` | 移动到下一个单词开头 |
| `b` | 移动到上一个单词开头 |
| `e` | 移动到当前单词末尾 |
| `0` | 移动到行首 |
| `^` | 移动到行首第一个非空白字符 |
| `$` | 移动到行尾 |
| `gg` | 移动到文件开头 |
| `G` | 移动到文件末尾 |
| `:[n]` | 移动到第 n 行 |
## 插入模式
| 命令 | 描述 |
| ---- | -------------------------- |
| `i` | 在光标前插入 |
| `a` | 在光标后插入 |
| `I` | 在行首插入 |
| `A` | 在行尾插入 |
| `o` | 在当前行下方新建一行并插入 |
| `O` | 在当前行上方新建一行并插入 |
## 编辑命令
| 命令 | 描述 |
| -------- | -------------------- |
| `x` | 删除当前字符 |
| `dd` | 删除当前行 |
| `dw` | 删除到下一个单词开头 |
| `d$` | 删除到行尾 |
| `d^` | 删除到行首 |
| `yy` | 复制当前行 |
| `p` | 粘贴 |
| `u` | 撤销 |
| `Ctrl+r` | 重做 |
| `.` | 重复上一次修改 |
## 搜索与替换
| 命令 | 描述 |
| ---------------- | ------------------- |
| `/pattern` | 向前搜索 pattern |
| `?pattern` | 向后搜索 pattern |
| `n` | 下一个匹配项 |
| `N` | 上一个匹配项 |
| `:%s/old/new/g` | 全局替换 old 为 new |
| `:%s/old/new/gc` | 全局替换,每次确认 |
## 可视模式
| 命令 | 描述 |
| -------- | ---------------- |
| `v` | 进入字符可视模式 |
| `V` | 进入行可视模式 |
| `Ctrl+v` | 进入块可视模式 |
## 窗口管理
| 命令 | 描述 |
| ------------- | -------------- |
| `:sp [file]` | 水平分割窗口 |
| `:vsp [file]` | 垂直分割窗口 |
| `Ctrl+w h` | 移动到左侧窗口 |
| `Ctrl+w j` | 移动到下方窗口 |
| `Ctrl+w k` | 移动到上方窗口 |
| `Ctrl+w l` | 移动到右侧窗口 |
| `Ctrl+w c` | 关闭当前窗口 |
| `Ctrl+w o` | 只保留当前窗口 |
## 标签页
| 命令 | 描述 |
| ---------------- | -------------- |
| `:tabnew [file]` | 新建标签页 |
| `gt` | 下一个标签页 |
| `gT` | 上一个标签页 |
| `:tabclose` | 关闭当前标签页 |
## 文件操作
| 命令 | 描述 |
| --------- | -------------- |
| `:e file` | 打开文件 |
| `:w` | 保存文件 |
| `:w file` | 另存为 file |
| `:q` | 退出 |
| `:q!` | 强制退出不保存 |
| `:wq` | 保存并退出 |
| `:x` | 保存并退出 |
## 其他实用命令
| 命令 | 描述 |
| ----------------- | --------------------------------- |
| `*` | 搜索当前光标下的单词 |
| `#` | 反向搜索当前光标下的单词 |
| `:%!command` | 将当前缓冲区内容通过 command 过滤 |
| `:r!command` | 将 command 的输出插入到当前位置 |
| `:set nu` | 显示行号 |
| `:set nonu` | 隐藏行号 |
| `:set hlsearch` | 高亮搜索结果 |
| `:set nohlsearch` | 取消高亮搜索结果 |