vim按键整理
Write By CS逍遥剑仙
我的主页: csxiaoyao.com
GitHub: github.com/csxiaoyaojianxian
Email: sunjianfeng@csxiaoyao.com
QQ: 1724338257
1 一般模式下光标移动、搜索替换、复制粘贴
| 光标移动 | |
|---|---|
| h / b / ← | 光标向左移动一个字符 |
| j / ↓ | 光标向下移动一个字符 |
| k / ↑ | 光标向上移动一个字符 |
| l / w / → | 光标向右移动一个字符 |
| e | 光标移动到字尾 |
| 数字 + hjkl / 方向箭头 | 多字符移动。例如:向下移动 30 行:"30j" 或 "30↓" |
| + | 光标移动到非空格符的『下』一行 |
| - | 光标移动到非空格符的『上』一行 |
| n |
按下数字后再按空格键,光标会向右移动这一行的 n 个字符 |
| 0 或功能键[Home] | 移动到这一行的最前面字符处 (常用) |
| $ 或功能键[End] | 移动到这一行的最后面字符处 (常用) |
| H | 光标移动到这个屏幕的最上方一行的第一个字符 |
| M | 光标移动到这个屏幕的中央一行的第一个字符 |
| L | 光标移动到这个屏幕的最下方一行的第一个字符 |
| G | 移动到这个档案的最后一行 (常用) |
| nG | n 为数字。移动到这个档案的第 n 行 (可配合 :set nu) |
| gg | 移动到这个档案的第一行,相当于 1G (常用) |
| n |
n 为数字。光标向下移动 n 行 (常用) |
| 翻页 | |
|---|---|
| [Ctrl] + [f] | 屏幕向『下』移动一页,相当于 [Page Down]按键 (常用) |
| [Ctrl] + [b] | 屏幕向『上』移动一页,相当于 [Page Up] 按键 (常用) |
| [Ctrl] + [d] | 屏幕向『下』移动半页 |
| [Ctrl] + [u] | 屏幕向『上』移动半页 |
| 搜索替换 | |
|---|---|
| /word | 向光标之下寻找一个名称为 word 的字符串 |
| ?word | 向光标之上寻找一个名称为 wor |
| n | n 是英文按键,重复前一个搜寻的动作 |
| N | N 是英文按键,反向进行前一个搜寻动作 |
| :n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2,例如:在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD:『:100,200s/vbird/VBIRD/g』(常用) |
| :1,$s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用) |
| :1,$s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用) |
| 删除、复制、粘贴 | |
|---|---|
| x, X | x 向后删除一个字符 ([del] 按键), X 向前删除一个字符([backspace] 按键) (常用) |
| nx | n 为数字,连续向后删除 n 个字符 |
| dd | 删除游标所在的一整行 (常用) |
| ndd | n 为数字,删除光标所在的向下 n 行 |
| d1G | 删除光标所在到第一行的所有数据 |
| dG | 删除光标所在到最后一行的所有数据 |
| d$ | 删除游标所在处,到该行的最后一个字符 |
| d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
| yy | 复制游标所在的一行 (常用) |
| nyy | n 为数字。复制光标所在的向下 n 行 (常用) |
| y1G | 复制游标所在行到第一行的所有数据 |
| yG | 复制游标所在行到最后一行的所有数据 |
| y0 | 复制光标所在的那个字符到该行行首的所有数据 |
| y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
| p, P | p 在光标下一行粘贴,P 在光标上一行粘贴 (常用) |
| J | 将光标所在行与下一行的数据结合成同一行 |
| c | 重复删除多个数据,例如:向下删除 10 行,[ 10cj ] |
| u | 复原前一个动作 (常用) |
| U | 复原当前行的前一个动作 (常用) |
| [Ctrl]+r | 重做上一个动作 (常用) |
| . | 重复前一个动作 (常用) |
2 编辑模式
| 插入、取代模式 | |
|---|---|
| i, I | 插入模式:i 从光标所在处插入,I 在所在行第一个非空格符处插入 (常用) |
| a, A | 插入模式:a 从光标所在下一个字符处插入,A 所在行最后一个字符处插入 (常用) |
| o, O | 插入模式:o 所在行的下一行插入新行,O 所在行的上一行插入新行 (常用) |
| r, R | 取代模式:r 只取代光标所在字符一次,R 一直取代光标所在文字,直到按下 ESC (常用) |
| [Esc] | 退出编辑模式,回到一般模式 (常用) |
3 指令行模式
| 指令行储存、离开等指令 | |
|---|---|
| :w | 将编辑数据写入硬盘(常用) |
| :w! | 文件属性为只读时,强制写入 |
| :q | 离开 vi (常用) |
| :q! | 强制离开不储存 |
| :wq | 储存后离开,:wq! 为强制储存后离开 (常用) |
| ZZ | 没有更动则不储存离开,已被更动则储存后离开 |
| :w [filename] | 另存新档 |
| :r [filename] | 将新档案内容追加到游标所在行后 |
| :n1,n2 w [filename] | 将 n1 ~ n2 内容另存新档 |
| :! command | 退出并执行 command,例如『:! ls /home』可在 vi 中查看 /home 下以ls 输出的信息 |
| vim 环境变更 | |
|---|---|
| :set nu | 显示行号 |
| :set nonu | 取消行号 |

