编辑、查找、替换数据
| 命令 | 描述 | 所在模式 | 例子 |
|---|---|---|---|
| x | 删除当前光标所在位置的字符 | 插入模式(i,a,o) | |
| d | 删除当前光标所在行 | 插入模式 | |
| dw | 删除当前光标所在位置的单词 | 插入模式 | |
| d$ | 删除当前光标所在位置至行尾的内容 | 插入模式 | |
| J | 删除当前光标所在行行尾的换行符(拼接行) | 插入模式 | |
| u | 撤消前一编辑命令 | 插入模式 | |
| a | 在当前光标后追加数据 | 插入模式 | |
| A | 在当前光标后所在行行尾追加数据 | 插入模式 | |
| r char | 用char替换当前光标所在位置的单个字符 | 插入模式 | |
| R text | 用text覆盖当前光标所在位置的数据,直到按下ESC键 | 插入模式 | |
| y | 复制 | 可视化模式(v) | |
| yw | 复制一个单词 | 普通模式 | |
| y$ | 复制至行尾 | 普通模式 | |
| p | 粘贴复制的文本 | 普通模式 | |
| /s | 搜索 | 普通模式 | /search |
| :s/old/new | 用new替换第一个old | 普通模式 | |
| :s/old/new/g | 用new替换该所有old | 普通模式 | |
| :n,ms/old/new | 替换行号n和m之间所有old | 普通模式 | |
| :%s/old/new/g | 替换整个文件中的所有old | 普通模式 | |
| :%s/old/new/gc | 替换整个文件中的所有old,但是每次都会有提示 | 普通模式 |
有些编辑命令允许使用数字修饰符来指定重复该命令的次数,比如命令2x会删除从光标当前位置开始的两个字符,命令5dd会删除从光标的居当前所在行开始的5行。
在vim编辑器的普通模式下使用退格键(Backspace键)和删除键(Delete键)时要留心。vim编辑器通常会将删除键识别成x命令的功能,删除当前光标所在位置的字符。vim编辑器在普通械下通常不识别退格键。
普通模式下常用命令
| 命令 | 描述 |
|---|---|
| h | 左移一个字符 |
| j | 上移一行 |
| k | 下移一行 |
| l | 右移一个字符 |
| PageDown/Ctrl+F | 下翻一屏 |
| PageUp/Ctrl+B | 上翻一屏 |
| G | 移至缓冲区的最后一行 |
| num G | 移至缓冲区中的第num行 |
| gg | 移至缓冲区的第一行 |
| q | 如果未修改缓冲区的数据,退出 |
| q! | 取消所有对缓冲区的修改并退出 |
| w filename | 将文件保存至另一个文件中 |
| wq | 将缓冲区数据保存至文件中并退出 |
| set number | 设置行号 |