1.移动光标
h j k l
上:k 下:j 左:h 右:l
2.模式
普通模式和插入模式
| 敲击按键 | 含义 |
|---|---|
| i | 在光标前进入插入模式 |
| I | 在光标所在行的行首进入插入模式 |
| a | 在光标的后边进入插入模式 |
| A | 在光标所在行的行尾进入插入模式 |
| o | 在光标所在行的下方插入空行并进入插入模式 |
| O | 在光标所在行的上方插入空行并进入插入模式 |
| s | 删除光标指定的字符并进入插入模式 |
| S | 将光标所在行清楚并进入插入模式 |
3.删除命令
普通模式下,删除单一字符可以使用x命令,删除更多字符可以使用d命令
motion–表示操作范围的指令
| 按键 | 含义 |
|---|---|
| 0 | 将光标定位到行首的位置 |
| ^ | 同上 |
| $ | 将光标定位到行尾的位置 |
| b | 将光标定位到光标所在单词的起始处 |
| e | 将光标定位到光标所在单词的结尾处 |
| w | 将光标定位到下一个单词的起始处 |
| gg | 将光标定位到文件的开头 |
| G | 将光标定位到文件的末尾 |
-d motion可以组成更多的删除命令
| 按键 | 含义 |
|---|---|
| d0 | 删除光标从当前位置(不包含)到该行行首的所有字符 |
| d^ | 同上 |
| d$ | 删除从光标当前位置(包含)到该行行尾的所有字符 |
| db | 删除从光标当前位置(不包含)到该单词起始处的所有字符 |
| de | 删除从光标当前位置(包含)到单词结尾处的所有字符 |
| dw | 删除从光标当前位置(包含)到下一个单词起始处的所有字符 |
| dh | 删除光标前边一个字符 |
| dl | 删除光标制定的字符 |
| dj | 删除光标所在行以及下一行的所有字符 |
| dk | 删除光标所在行以及上一行的所有字符 |
| dd | 删除光标所在行的字符 |
| dgg | 删除光标所在行到文件开头的所有字符 |
| dG | 删除光标所在行到文件末尾的所有字符 |
- 数字 + motion = 重复多个motion
- d + 数字 + motion = 删除多个motion范围
4.撤销
- u表示撤销最后一次修改
- U表示撤销对整行的修改
- ctrl + r 可以恢复撤销的内容
5.粘贴
| 按键 | 含义 |
|---|---|
| yy | 复制游标所在的那一行(常用) |
| nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
| y1G | 复制游标所在行到第一行的所有数据 |
| yG | 复制游标所在行到最后一行的所有数据 |
| y0 | 复制光标所在的那个字符到该行行首的所有数据 |
| y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
| p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) |
命令c = 命令d + 进入删除模式
6.查看文件信息
| 按键 | 含义 |
|---|---|
| ctrl + g | 在底栏显示文件信息 |
| 行号+G / :行号 | 跳转到该行 |
| % | 找到另一半括号 |
| << / >> | 左右缩进 |
7.搜索
| /目标 | ?目标 | |
|---|---|---|
| 搜索方向 | 从光标开始向后 | 从光标开始向前 |
| n | 向后搜索下一个 | 向前搜索下一个 |
| N | 向前搜索下一个 | 向后搜索下一个 |
十个特殊字符需加转义符’\‘进行搜索:. * [ ] ^ % / ? ~ $
8.文件操作
| 按键 | 含义 |
|---|---|
| :w filename | 文件另存为 |
| :r filename | 将别的文件合并到该文件中 |
| vi -o 或 -O | 打开多个文件,小写竖向排列,大写横向排列 |
| ctrl + ww | 打开多个文件时进行切换窗口 |
9.显示行号
在当前文件输入命令 :set nu,即显示行号,:set nonu则为取消。该方法只为临时显示行号,下次打开时同样没有。
永久显示行号
在命令行输入vim ~/.vimrc ,即进入配置文件vimrc中,加入set nu, 保存退出,就可永久显示行号