vim常用命令总结
文章目录
1、查找
| 命令 | 说明 |
|---|---|
| /str | 向下查找str字符或单词 |
| ?str | 向上查找str字符或单词 |
| n | 查找模式下,下一个字符 |
| N | 查找模式下,上一个字符 |
| v{str} -> * | 选中str,按“*”将查找一次str出现的位置 |
| /{str}\> | 精确查找整个单词str,而不会查找到string,"\>"匹配结束处,“\<”匹配开始处 |
2、替换
| 命令 | 说明 |
|---|---|
| s/{pattern}/{replace}/ | 替换第一个出现的匹配正则文本pattern为replace |
| s/{pattern}/{replace}/g | 替换当前行所有匹配正则文本pattern为replace |
| %s/{pattern}/{replace}/g | 全局替换所有匹配正则文本pattern为replace |
| s/{pattern}/{replace}/gc | 全局替换所有匹配正则文本为replace,需确认(confirm) |
| 2,5/{pattern}/{replace}/g | 替换2到5行匹配正则的文本为replace |
3、编辑
3.1 字符插入、删除
| 命令 | 说明 |
|---|---|
| x | 向后删除字符 |
| X | 向前删除字符 |
| s | 替换字符 |
| i | 在光标前插入 |
| I | 在行首插入 |
| a | 在光标后插入 |
| A | 在行尾插入 |
| c | 改变(change),删除并进入编辑模式 |
| C | 改变(change),删除光标后字符到行尾并进入编辑模式 |
3.2 单词
| 命令 | 说明 |
|---|---|
| diw | 删除光标所在单词,不包含空格,del inner word |
| daw | 删除光标所在单词,包含空格,del a word |
| dw | 删除光标后的字符到下一个单词的词首,包含空格,d4w—删除4个单词,d4e,d$ |
3.3 行操作-----删除、插入、编辑
| 命令 | 说明 |
|---|---|
| D | 删除光标后的字符到行尾,不可编辑 |
| C | 修改光标后的字符到队尾,可编辑 |
| S | 修改整行,可编辑 |
| dd | 删除整行 |
| yy | 复制整行 |
| o | 向下插入一行 |
| O | 向上插入一行 |
| A | 向前行首插入 |
| I | 当前行尾插入 |
| J | 两行合一行,{n}J:n行合一行 |
3.4 撤销
| 命令 | 说明 |
|---|---|
| u | 向前撤销 |
| ctrl+r | 向后恢复 |
3.5 编辑(复制,剪切,删除)
| 命令 | 说明 |
|---|---|
| p | 向下复制一行 |
| P | 在当前行复制一行 |
| d | 剪切 |
| n,md | 删除n到m行内容 |
| n,d | 删除n以后的行 |
| .,$d | 删除光标所在行后的所有行 |
3.6 状态
| 命令 | 说明 |
|---|---|
| ctrl+g | 统计当前行的信息 |
| g->ctrl + g | 统计所有内容信息 |
3.7 选择
| 命令 | 说明 |
|---|---|
| v | 从光标位置开始,光标经过位置选中 |
| V | 从光标位置所在行开始,光标经过所在的行选中 |
| ctrl+v | 从光标位置开始,构成选中矩阵 |
| ggVG | 选中全部的文本,其中gg为跳到行首,V选中整行,G末尾 |
3.8 文件
| 命令 | 说明 |
|---|---|
| edit foo.txt | 编辑另一个foo.txt文件,简写:e foo.txt |
| vim 1.txt 2.txt 3.txt | 同时编辑多个文件 |
| vim -R file.txt | 只读打开 |
| next (previous) | 切到下一个 |
| n (prev) | 切到上一个 |
| wn (wprev) | 保存后下一个 |
| args | 显示正在编辑的文件和文件列表 |
| split | 为文件打开一个新窗口 |
| split 2.txt | 为2.txt文件打开一个新窗口 |
| vsplit | 垂直分割窗口 |
| vim -o 1.txt 2.txt | 为每个文件打开一个窗口 |
| vimdiff 1.txt 2.txt | 比较文件之间的不同 |
| tabe 1.txt | 问1.txt创建标签页,gt切换 |
| q|w|wq all | 放弃|保存|保存所有并退出 |
| only | 关闭除当前窗口外的其他窗口 |
| sav|saves newfileName.txt | 另存为新文件(已保存) |
| f|file newFileName.txt | 另存为新文件(未保存) |
| ctrl + w | 切换窗口 |
4、移动
4.1 单词
| 命令 | 说明 |
|---|---|
| w | 下一个单词第一个字符 |
| W | 下一个长单词第一个字符 |
| e | 下一个单词最后字符 |
| E | 下一个长单词最后字符 |
| b | 前一个单词第一个字符 |
| B | 前一个长单词第一个字符 |
| g[e|E] | 前一个(长)单词最后字符 |
4.2 行
| 命令 | 说明 |
|---|---|
| (数字0|btn[home]) | 行首:包含空格 |
| ^ | 行首:非空字符 |
| {n}$|btn[end] | n行行尾:非空字符 |
| gg | 第一行 |
| G | 最后一行 |
| {n}G | 到第n行行首 |
4.3 句
| 命令 | 说明 |
|---|---|
| ( | 到句首 |
| ) | 到句尾 |
4.4 段落
| 命令 | 说明 |
|---|---|
| { | 到段首 |
| } | 到段尾 |
4.5 屏幕
| 命令 | 说明 |
|---|---|
| ctrl + y | 向上滚屏 |
| ctrl + e | 向下滚屏 |
| ctrl + u | 向上滚半屏 |
| ctrl + d | 向下滚半屏 |
| ctrl + b | 向上滚半屏 |
| ctrl + f | 向下滚半屏 |
4.6 跳转
| 命令 | 说明 |
|---|---|
| [f|F]{x} | 跳到【下】|【上】一个x字符的位置,分号(;)向下查看,逗号(,)反向 |
| ctrl + ] | 跳到上一个应用的地方 |
| ctrl + o | 跳到上一个光标位置 ctrl + I 调回来 |
| % | 匹配关闭所在括号的另一个对应括号 |
| {n}% | 跳到文件n%的地方 |
| [H|M|L] | 跳到文件【第一行】|【中间行】|【结尾行】的行首 |
4.7 标记
| 命令 | 说明 |
|---|---|
| m[a-z] | (同一个文件用小写)为光标当前位置做一个[a-z]的标记(mark a),调回a标记,使用a。 清除所有标记:delm! |
| m[A-Z] | (不同文件用大写)为光标当前位置做一个[A-Z]的标记(mark A),调到A标记,使用A。 清除所有标记:delm! |
| marks A | 查看A标记对应的内容 |
| ‘’ | 前后两个mark之间跳转 |
4.8 其他
| 命令 | 说明 |
|---|---|
| h|j|k|i | 左,下,上,右 |
| {n}[h|j|k|i] | 向【左|下|上|右】移动n |
5、折行
| 命令 | 说明 |
|---|---|
| zfap | 折一段文本 |
| zf | 创建折行 |
| zo | 打开折行 |
| zc | 关闭折叠 |
6、保存、退出
| 命令 | 说明 |
|---|---|
| w | 保存 |
| q | 退出 |
| ZZ|WQ|x | 保存退出 |
| ZQ|q! | 不保存退出 |
| w{filename} | 另存为文件 |
7、寄存器
| 命令 | 说明 |
|---|---|
| reg | 查看寄存器 |
| ""p | 使用匿名寄存器粘贴 |
| "ayy | 复制当前行到寄存器 a 中 |
| "ap | 粘贴a寄存器中的内容 |
| "+p | 粘贴剪切板中的内容 |
| ":p | 粘贴上一个vim命令,带冒号 -:的命令 |
| "/p | 粘贴上一个在vim中搜索的关键词 |
| "_[d|y] | 黑洞复制,黑洞剪切 |
8、设置
| 命令 | 说明 |
|---|---|
| set h|search | 开启高亮搜索 set noh|search关闭 |
| set autoindent | 开启自动缩进 |
| syntax | enable |
| set nu! | 显示行号 |
| set warp | 自动换行 |










