Vim 常用快捷键
键位预览图

一般模式下的光标移动、复制粘贴、搜索替换
光标移动
| 键位 | 功能 |
|---|---|
| h,j,k,l | 上,下,左,右 |
| [n] + h,j,k,l | 上,下,左,右 移动 n |
| [ctrl] + f, [ctrl] + b | 上下翻页 |
| [ctrl] + d, [ctrl] + u | 上下翻半页 |
| [n] + [space] | 向右移动 n |
| 0 | 移动到行首 |
| $ | 移动到行尾 |
| H | 移动到屏幕最上方那一行 |
| M | 移动到屏幕中间那一行 |
| L | 移动到屏幕最下方那一行 |
| G | 移动到文件最后一行 |
| [n] + G | 移动到第几行 |
| gg | 移动到第一行 |
| n + [Enter] | 向下移动 n 行 |
搜索替换
| 键位 | 功能 |
|---|---|
| /word | 向光标之下寻找一个名称为 word 的字符串 |
| ?word | 向光标之上寻找一个名称为 word 的字符串 |
| n | 重复前一次搜索动作 |
| N | 反向进行前一次的搜索动作 |
| :[n1],[n2]s/word1/word2/g | 在 n1 行和 n2 行之间搜索 word1 ,并替换成 word2 |
| :1,$s/word1/word2/g | 全文搜索 word1 ,并替换成 word2 |
| :1,$s/word1/word2/gc | 全文搜索 word1 ,并替换成 word2,替换之前提示 |
删除、复制与粘贴
| 键位 | 功能 |
|---|---|
| x,X | 向后删除字符,向前删除字符 |
| [n] + x | 向后连续删除 n 个字符 |
| dd | 删除一整行 |
| [n] + dd | 向下删除 n 行 |
| d1G | 删除光标到第 1 行的数据 |
| dG | 删除光标到最后一行的数据 |
| d$ | 删除光标到该行尾的数据 |
| d0 | 删除光标到该行首的数据 |
| yy | 复制光标所在行 |
| [n + ]yy | 向下复制 n 行 |
| y1G | 复制光标到第 1 行的数据 |
| yG | 复制光标到最后一行的数据 |
| y$ | 复制光标到行尾的数据 |
| y0 | 复制光标到行首的数据 |
| p,P | 将数据粘贴到光标的下一行,上一行 |
| J | 将光标下一行与当前行结合成同一行 |
| u | 复原前一个动作 |
| [ctrl] + r | 重做上一个动作 |
| . | 重复前一个动作 |
输入模式
| 键位 | 功能 |
|---|---|
| i,I | 在光标处输入,在所在行第一个非空格处开始输入 |
| a,A | 在光标下一个字符开始输入,从光标所在行最后一个字符开始输入 |
| o,O | 在光标的下一行输入新的一行,在光标的上一行输入新的一行 |
| r,R | 输入取代光标所在字符一次,一直取代光标所在文字 |
| [esc] | 退出输入模式 |
指令模式
| 键位 | 功能 |
|---|---|
| :w | 将编辑的数据写入硬盘 |
| :w! | 强制写入 |
| :q | 离开编辑器 |
| :q! | 强制离开 |
| :wq | 保存并离开 |
| ZZ | 如果文档没有修改,则不保存离开,如果修改过,则保存后离开 |
| :w[filename] | 将文档写入另一个文档 |
| :r[filename] | 将另一个文档的数据加入当前行 |
| :[n1],[n2] w [filename] | 将 n1 到 n2 的内容存入另一个文件 |
| :! [command] | 暂时离开编辑器,在指令模式下执行 command |
| set nu | 显示行号 |
| set nonu | 不显示行号 |