### Vim 常用命令详解 #### 一、光标移动命令 Vim 提供了丰富的光标移动命令,能够帮助用户快速定位到文件中的特定位置。 1. **单个字符移动** - `h`: 向左移动一个字符。 - `l`: 向右移动一个字符。 - `j`: 向下移动一个字符。 - `k`: 向上移动一个字符。 - `xh`: 向左移动 x 个字符距离。例如,`5h`表示向左移动5个字符。 2. **单词移动** - `w`: 将光标移动到下一个单词的开头。 - `b`: 将光标移动到前一个单词的开头。 - `e`: 将光标移动到下一个单词的词末。 - `E`: 移动到单词的结尾(忽略标点符号)。 - `ge`: 将光标移动到上一个单词的词末。 - `2w`: 指定移动的次数,如`2w`表示移动两个单词的距离。 3. **行移动** - `$`: 将光标移动到当前行的行尾。 - `0`: 将光标移动到当前行的行首。 - `^`: 将光标移动到当前行的第一个非空字符(即行首的第一个字母或数字等非空白字符)。 - `2|`: 移到当前行的第 2 列。 - `fx`: 将光标移动到当前行的第一个字符 x 上。 - `3fx`: 将光标移动到当前行的第 3 个字符 x 上。 - `tx`: 将光标移动到目标字符 x 的前一个字符上。 - `fx` 和 `tx` 可以通过`;`和`,`进行重复移动,`;`是正向重复,`,`是反向重复。 - `%`: 用于符号间的移动,它会在一对()、[]、{}之间跳跃。 4. **文本块移动** - `( )`: 移到当前句子的开头和下一个句子的开头。 - `{ }`: 移到当前段落的开头和下一段落的开头。 - `[ ]`: 移到当前节的开头和下一节的开头。 5. **在屏幕中移动** - `xG`: 跳转到指定的第 x 行。 - `G`: 移动到文件末尾。 - `` (2 次单引号)`: 返回到跳转前的位置。 - `gg`: 移动到文件开头。 - `x%`: 移动到文件中间,如`50%`表示移动到文件的50%位置。 - `H`: 移动到屏幕顶部。 - `M`: 移动到屏幕中间。 - `L`: 移动到屏幕底部。 - `ctrl+G`: 查看当前的位置状态。 #### 二、滚屏与跳转 1. **半屏滚动** - `ctrl+u`: 向上滚动半屏。 - `ctrl+d`: 向下滚动半屏。 2. **全屏滚动** - `ctrl+f`: 向下滚动一屏。 - `ctrl+b`: 向上滚动一屏。 3. **定位光标的位置** - `zz`: 将光标置于屏幕的中间。 - `zt`: 将光标移动到屏幕的顶部。 - `zb`: 将光标移动到屏幕的底部。 4. **设置跳转标记** - `mx`, `my`, `mz`: 设置三个位置。 - `x`, `y`, `z`: 跳转到设置的位置。 #### 三、文本插入操作 1. **插入模式** - `i`: 在当前光标的前面插入字符。 - `a`: 在当前光标的后面追加字符。 - `o`: 在当前光标的下一行行首插入字符。 - `I`: 在一行的开头添加文本。 - `A`: 在一行的结尾处添加文本。 - `O`: 在光标当前行的上一行插入文本。 - `s`: 删除当前光标处的字符并进入到插入模式。 - `S`: 删除光标所在处的行,并进入到插入模式。 2. **撤销修改** - `u`: 撤销上一步的操作。 - `Ctrl+r`: 重做上一次的撤销操作。 #### 四、文本删除操作 1. **字符删除** - `x`: 删除当前光标所在处的字符。 - `X`: 删除当前光标左边的字符。 2. **单词删除** - `dw`: 删除一个单词(从光标处到空格)。 - `daw`: 无论光标在什么位置,删除光标所在的整个单词(包括空白字符)。 - `diw`: 删除整个单词文本,但是保留空格字符不删除。 - `d2w`: 删除从当前光标开始处的 2 个单词。 - `d$`: 删除从光标到一行末尾的整个文本。 - `d0`: 删除从光标到一行开头的所有单词。 3. **行删除** - `dd`: 删除当前光标处的一整行。 - `D`: 删除从光标开始处到行尾的所有内容。 - `5dd`: 删除从光标开始处的 5 行代码。 - `dgg`: 删除从光标到文本开头。 - `dG`: 删除从光标到文本结尾。 4. **行合并** - `J`: 删除一个分行符,将当前行与下一行合并。 #### 五、文本复制、剪切与粘贴 1. **复制与粘贴** - `y`: 复制。 - `p`: 粘贴。 - `yw`: 复制一个单词。 - `y2w`: 复制 2 个单词。 - `y$`: 复制从当前光标到行结尾的所有单词。 - `y0`: 复制从当前光标到行首的所有单词。 - `yy`: 复制一整行。 - `2yy`: 复制从当前光标所在行开始的 2 行。 #### 六、文本的修改与替换 1. **修改模式** - `cw`: 删除从光标处到单词结尾的文本并进入到插入模式。 - `cb`: 删除从光标处到单词开头的文本并进入到插入模式。 - `cc`: 删除一整行并进入到插入模式。 - `~`: 修改光标下字符的大小写。 - `r`: 替换当前光标下的字符。 - `R`: 进入到替换模式。 - `xp`: 交换光标和下一个字符。 2. **查找与替换** - `/string`: 正向查找。 - `?string`: 反向查找。 - `:set hls`: 设置高亮显示。 - `*`: 按键将当前光标处的单词高亮显示,使用 `n` 浏览下一个查找高亮的结果。 - `:s/old/new`: 将当前行的第一个字符串 old 替换为 new。 - `:s/old/new/g`: 将当前行的所有字符串 old 替换为 new。 - `:90s/old/new/g`: 将指定行的所有字符串 old 替换为 new。 - `:90,93s/old/new/g`: 将指定范围的行的所有字符串 old 替换为 new。 - `:%s/old/new/g`: 将文本中所有的字符串 old 替换为 new。 - `:%s/^struct/int/g`: 将所有以 `struct` 开头的字符串替换为 `int`。 #### 七、撤销修改、重做与保存 1. **撤销与重做** - `u`: 撤销上一步的操作。 - `Ctrl+r`: 重做上一次的撤销操作。 - `:U`: 恢复一整行原来的面貌(文件打开时的文本状态)。 2. **退出与保存** - `:q`: 若文件没有修改,直接退出。 - `:q!`: 文件已经被修改,放弃修改退出。 - `:wq`: 文件已经被修改,保存修改并退出。 - `:e!`: 放弃修改,重新回到文件打开时的状态。 #### 八、编辑多个文件 1. **文件与缓冲区** - 文件是保存在磁盘上的,而打开的文件是存放在内存中的缓冲区。 - `vim`每次打开文件时都会创建一个缓冲区,支持打开多个文件。 - `:buffers`: 查看缓冲区列表。 - `:buffer N`: 根据编号切换到相应的缓冲区。 以上就是 Vim 中常用的命令及其功能介绍。熟练掌握这些命令能够极大地提高文本编辑效率。
剩余17页未读,继续阅读
- 粉丝: 1822
- 资源: 547
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助