1 打开和新建文件
- 在终端输入
vi
文件名 即可
$ vi 文件名
1.1 打开文件并定位行
$ vi 文件名 +行数
1.2 删除交换文件 文件名.swp
- 当vim 异常退出时,磁盘上可能会出现隐藏的交换文件
- 下次使用vim打开会有一个E325错误
- 按照提示按下键盘,D代表删除交换文件,注意先切换到英文输入法
2 vim 三种编辑模式
1)命令模式: 输入i
进入编辑模式,输入:
进入末行模式
2)编辑模式: 按下ESC
进入命令模式
3)末行模式: 按下ESC
进入命令模式
末端命令:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | :w | write | 保存 |
02 | :q | quit | 退出,如果没有保存,不允许退出 |
03 | :q! | quit | 强行退出,不保存退出 |
04 | :wq | write & quit | 保存并退出 |
05 | :x | 退出并保存 | |
06 | :%s///gc | 确认搜索并替换 |
行内移动:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | w | word | 向后移动一个单词 |
02 | b | back | 向后移动一个单词 |
03 | 0 | 行首 | |
04 | ^ | 行首,第一个不是空白字符的位置 | |
05 | $ | 行尾 |
行数移动:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | gg | go | 文件顶部 |
02 | G | go | 文件尾部 |
03 | 数字gg | go | 移动到数字对应的行数 |
04 | 数字G | go | 移动到数字对应的行数 |
05 | :数字 | 移动到数字对应的行数 |
屏幕移动:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | Ctrl + b | back | 向上翻一页 |
02 | Ctrl + f | forward | 向下翻一页 |
03 | H | Head | 屏幕顶部 |
04 | M | Midle | 屏幕中间 |
05 | L | Low | 屏幕底部 |
段落移动:
序号 | 命令 | 功能 |
---|---|---|
01 | { | 上一段 |
02 | } | 下一段 |
括号切换:
包括() [] {}
等
序号 | 命令 | 功能 |
---|---|---|
01 | % | 括号匹配及切换 |
标记:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | mx | mark | 添加标记x x是a~ z或者A~ Z之间任意字母 |
02 | 'x | 直接定位(光标回到)到标记x所在位置 |
选中文本命令(可视模式):
序号 | 命令 | 模式 | 功能 |
---|---|---|---|
01 | v | 可视模式 | 从光标的位置开始按照正常模式选择文本 |
02 | V | 可视行模式 | 选中光标经过的完整行 |
03 | Ctrl + v | 可视块模式 | 垂直方向选中文本 |
撤销和恢复撤销:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | u | undo | 撤销上次命令 |
02 | CRRL + r | redo | 恢复撤销的命令 |
删除命令:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | x | cut | 删除光标所在字符,或者选中文字 |
02 | d | delete | 删除移动命令对应的内容 |
03 | dd | delete | 删除光标所在行,可以ndd复制多行 |
04 | D | delete | 删除至行尾 |
dw #从光标位置删除到单词末尾
d0 #从光标的位置删除到一行的开始
d} #从光标位置删除到段落结尾
ndd #从光标位置向下删除n行
d代码行G #从光标位置删除到 指定代码行之间的所以代码
d'a #从光标所在行删除到标记a之间的所有代码
复制粘贴:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | y(移动命名) | copy | 复制 |
02 | yy | copy | 复制一行,nyy复制多行 |
03 | p | paste | 粘贴 |
替换:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | r | replace | 替换当前字符 |
02 | R | replace | 替换当前行光标后的字符 |
-
R
命令可以进入 替换模式,替换完成后,按下ESC
可以回到命令模式 - 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改
缩排和重复执行,查找:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | >> | 向右增加缩进 | |
02 | << | 向左减少缩进 | |
03 | . | 重复上次命令 | |
04 | /str | check | 查找str n查找下一个 N查找上一个 |
单词快速匹配:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | * | 向后查找当前光标所在单词 | |
02 | # | 向前查找当前光标所在单词 |
- 在开发中,通过单词快速匹配,可以快速看到这个单词在其他位置使用过。
查找并替换:
命令:
:%s///g
全局替换::%s/旧文本/新文本/g
可视区域替换::s/旧文本/新文本/g
确认替换::s/旧文本/新文本/gc
1 y-yes 替换
2 n-no 不替换
3 a-all替换所以
4 q-quit退出替换
5 l-last 最后一个,并把光标移动到行首
6 ^E 向下滚动
7 ^Y向上滚动
插入命令:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | i | insert | 在当前字符插入文本 |
02 | I | insert | 在行首插入文本 |
03 | a | append | 在当前字符后添加文本 |
04 | A | append | 在行末添加文本 |
05 | o | 在当前行后插入一空行 | |
06 | O | 在当前行前面插入一空行 |
末行命令扩展:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | :e . | edit | 会打开内置的文件浏览器,浏览当前目录下的文件 |
02 | :n | new | 新建文件 |
03 | :w 文件名 | write | 另存为,但是仍然编辑当前文件,并不会切换文件 |
分屏命令:
序号 | 命令 | 英文 | 功能 |
---|---|---|---|
01 | :sp [文件名] | split | 横向增加分屏 |
02 | :vsp [文件名] | vertical split | 纵向增加分屏 |
03 | w | window | 切换到下一个窗口 |
04 | r | reverse | 互换窗口 |
05 | c | close | 关闭当前窗口,但是不能关闭最后一个窗口 |
06 | q | quit | 退出当前窗口,如果是最后一个窗口,则关闭vi |
07 | o | other | 关闭其他窗口 |