vim三种模式切换
命令模式
| 命令 | 含义 |
|---|---|
| yy | 复制光标所在这一行 |
| 4yy | 复制光标所在行开始向下的4行 |
| p | 粘贴 |
| dd | 删除光标所在的这一行(删除相当于剪切) |
| 2dd | 删除光标所在行向下2行 |
| D | 从当前的光标开始剪切,一直到行末 |
| d0 | 从当前的光标开始剪切,一直到行首 |
| x | 删除当前的光标,每次只会删除一个 |
| X | 删除当前光标的前面那个,每次只会删除一个 |
| h | 控制光标向左移一位 |
| j | 控制光标向下移一位 |
| k | 控制光标向上移一位 |
| l | 控制光标向右移一位 |
| H | 移动到当前屏幕的上方 |
| M | 移动到当前屏幕的中间 |
| L | 移动到当前屏幕的下方 |
| ctrl+f | 向下翻一页代码 |
| ctrl+b | 向上翻一页代码 |
| ctrl+d | 向下翻半页代码 |
| ctrl+u | 向上翻半页代码 |
| 20G | 快速的定位到第20行 |
| G | 快速的回到整个代码的最后一行 |
| gg | 快速的回到整个代码的第一行 |
| w | 向后跳一个单词的长度,即跳到下一个单词的开始处 |
| b | 向前跳一个单词的长度,即跳到下一个单词的开始处 |
| u | 撤销刚才的操作 |
| ctrl+r | 取消撤销(反撤销) |
| v/V | 选中一片代码 |
| >> | 向右移动代码 |
| << | 向左移动代码 |
| . | 重复执行上一次的命令 |
| r | 替换一个字符(替换当前光标所定位的字符) |
| R | 替换光标以及后面的字符 |
| /word | 向光标之下寻找名称为"word"的字符串 |
| n | 重复前一个搜寻的动作,向光标之下搜寻 |
| N | 重复前一个搜寻的动作,向光标之上搜寻 |
末行模式
| 命令 | 含义 |
|---|---|
| w | 保存 |
| q | 退出 |
| q! | 强制退出(不保存) |
| wq | 保存退出 |
| set nu | 显示行号 |
| set nonu | 取消行号 |
| :n1,n2s/word1/word2/g | 在第n1与n2行之间寻找“word1”字符串,并用“word2”取代 |
| :1,$s/word1/word2/g | 在第一行与最后一行之间寻找“word1”字符串,并用“word2”取代 |
| :%s/word1/word2/g | 在整个文档中寻找“word1”字符串,并用“word2”取代 |