Vim 的六种基本模式
- 普通模式
- 插入模式
- 命令行模式
- 可视模式
- 选择模式
- Ex 模式
其中常用的是 普通模式 插入模式 和 命令行模式。
三种模式切换
vim 启动进入普通模式,处于插入模式或者命令行模式时只需要按 Esc 或者 Ctrl + [ 即可进入普通模式,普通模式中按i或者a都可以进入插入模式。普通模式按:可以进入命令行模式,命令行输入 wq 回车保存退出 vim
游标移动
在普通模式中进行游标移动,按h,j,k,l进行游标移动
| 按键 | 说明 |
|---|---|
| h | 左 |
| l | 右(小写) |
| j | 下 |
| k | 上 |
插入模式
进入插入模式
在普通模式下使用下面的键进入插入模式,并且可以从相应的位置开始输入
| 命令 | 说明 |
|---|---|
| i | 从当前光标处进行编辑 |
| I | 在行首插入 |
| A | 在行末插入 |
| a | 在光标后插入 |
| o | 在当前行后插入一个新行 |
| O | 在当前行前插入一个新行 |
| cw | 替换从光标所在位置后到一个单词结尾的字符 |
| C | 修改当前行上光标后面的部分. 进入编辑状态 |
| cc OR S | 修改当前行. 进入编辑状态 |
删除文本
普通模式删除文本
| 命令 | 说明 |
|---|---|
| x | 删除游标所在的字符 |
| X | 删除游标所在的前一个字符 |
| Delete | 同 x |
| dd | 删除整行 |
| dw | 删除一个单词 |
| d$ OR D | 删除至行位 |
重复上次操作
在普通模式下 . (小数点)表示重复上次操作
执行指定次数的命令
在普通模式下,输入N<command> ,N 表示 command 的执行次数,比如 2dd,表示执行 dd 两次。
游标的快速跳转
行间跳转
| 命令 | 说明 |
|---|---|
| nG(n Shift+g) | 游标移动到第n 行,如果默认没有显示行号,先执行:set nu 显示行号 |
| gg | 游标移动到第一行 |
| G(shift+g) | 到最后一行 |
行内跳转
普通模式下使用下列命令在行内按照单词为单位进行跳转
| 命令 | 说明 |
|---|---|
| w | 到下一个单词的开头 |
| e | 到当前单词的结尾 |
| b | 到前一个单词的开头 |
| ge | 到前一个单词的结尾 |
| 0 OR ^ | 到行头 |
| $ | 到行尾 |
| f[字母] | 向后搜索 字母 并跳转到第一个匹配的位置 |
| F[字母] | 向前搜索 字母 并跳转到第一个匹配的位置 |
| t[字母] | 向后搜索 字母 并跳转到第一个匹配的位置之前的一个字母** |
| T[字母] | 向前搜索 字母 并跳转到第一个匹配的位置之前的一个字母** |
复制粘贴剪切
复制及粘贴文本
在普通模式下使用 y 复制
| 命令 | 说明 |
|---|---|
| y | 复制当前光标的文本 |
| yy | 复制游标所在的整行 |
| y^ OR y0 | 复制至行首,不包含光标所在的字符 |
| y$ | 复制至行尾,含光标所在处字符 |
| yw | 复制一个单词 |
| y[n]w | 复制 n 个单词 |
| yG | 复制至文本末 |
| y1G | 复制至文本开头 |
使用p粘贴
| 命令 | 说明 |
|---|---|
| p | 粘贴至光标后 |
| P | 粘贴至光标前 |
剪切及粘贴
其实 dd 就是剪切,每次剪切后可以用 p来粘贴,所以 ddp 可以快速实现上下行交换
查找和替换
替换和撤销命令
普通模式
| 命令 | 说明 |
|---|---|
| r<待替换的字母> | 将游标所在的字母替换为指定的字母 |
| R | 连续替换,直到按下Esc
|
| cc | 替换整行,及删除游标所在的行,并进入插入模式 |
| cw | 替换一个单词,即删除一个单词,并进入插入模式 |
| C | 替换游标以后至行末 |
| ~ | 反转游标所在字母的大小写 |
| u[n] | 撤销一次或者 n 次操作 |
| U | 撤销当前行的所有修改 |
| Ctrl+r | redo,撤销撤销操作 |
快速缩进
使用命令进行快速调整缩进操作
缩进操作均在普通模式下有效
| 命令 | 说明 |
|---|---|
>> |
将整行向右缩进 |
| << | 将整行向左回退 |
命令行下对shiftwidth值进行设置可以控制缩进和回退的字符数
shiftwidth 命令
获取目前的设定值
:set shiftwidth?
设置缩进值为10个字符
:set shiftwidth=10
调整文本位置
命令行模式下输入:ce 命令使文本居中
| 命令 | 说明 |
|---|---|
| :ce | 使本行内容居中 |
| :ri | 使本行内容靠右 |
| :le | 使本行内容靠左 |
查找
快速查找
普通模式下输入/ 然后输入要查找的字符串,按回车后就会进行查找。
?与/功能相同,只不过?是向上而/是向下查找
进入查找后输入n 和 N可以继续查找
n 表示继续查找,N表示反向查找
高级查找
| 命令 | 说明 |
|---|---|
| * | 向下查找游标所在处的单词 |
| # | 向上查找游标所在处的单词 |
| g* | 向下查找游标所在处的单词,部分符合即可 |
| g# | 向上查找游标所在处的单词,部分符合即可 |
n 和N仍可使用










网友评论