diff --git a/Vim/vim1.md b/Vim/vim1.md new file mode 100644 index 0000000..0d47084 --- /dev/null +++ b/Vim/vim1.md @@ -0,0 +1,60 @@ +## **1. 基础移动(Navigation)** +- **字符移动**: + - `h` ← / `j` ↓ / `k` ↑ / `l` → + - 方向键也能用,但 Vim 提倡用 `hjkl` 保持手不离键盘。 +- **单词移动**: + - `w` → 跳到下一个单词开头 + - `b` ← 跳到上一个单词开头 + - `e` → 跳到当前单词末尾 +- **行内跳转**: + - `0` 跳到行首,`^` 跳到第一个非空字符 + - `$` 跳到行尾 + - `f` 向后搜索字符(如 `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` → 删除直到某个字符(如 `dt)` 删除到 `)`) +- `.` → 重复上一次操作 diff --git a/Vim/vim2.md b/Vim/vim2.md new file mode 100644 index 0000000..587670a --- /dev/null +++ b/Vim/vim2.md @@ -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` | 取消高亮搜索结果 |