前言
vi中,通常分为三种模式,具体模式如下:
1、 插入模式。在这个模式下,用户可以输入文本,它是编辑文件的主要模式
2、 底行模式。在这个模式下,用户可以进行保存文件、退出vi等操作
3、 命令模式。在这个模式下,用户可以执行如移动光标、删除字符、复制文本等命令
进入vi默认为命令行模式,输入插入模式命令可切换为插入模式,ESC键返回命令行模式。通过输入”:”可切入底行模式,ESC键发回命令行模式。
一、vi命令介绍
1、插入模式命令
命令 | 功能 | 使用说明 |
---|---|---|
i | 在当前字符前插入文本 | |
I | 在光标所在行首插入文本 | |
a | 在当前字符后插入文本 | |
A | 在光标所在行末插入文本 | |
o | 在当前后面插入文本 | |
O | 在当前行前面插入文本 |
命令 | 功能 | 使用说明 |
---|---|---|
w | 保存,不退出 | |
q | 退出,如果没有保存,不退出 | |
q! | 强制退出,不保存 | |
wq | 保存并退出 | |
x | 保存并退出 |
命令 | 功能 | 使用说明 |
---|---|---|
光标上、下、左、右移动 | ||
h或← | 左移 | |
j或↓ | 下移 | |
k或↑ | 上移 | |
l或→ | 右移 | |
行内移动 | ||
w | 向后移动一个单词 | |
b | 向前移动一个单词 | |
0 | 行首 | |
^ | 行首,第一个不是空格的位置 | |
$ | 行尾 | |
行数移动 | ||
gg | 文件顶部 | |
G | 文件末尾 | |
数字gg/数字G/:数值 | 移动到数字对应行数 | |
屏幕移动 | ||
Ctrl+b/PgUp | 向上翻页 | |
Ctrl+f/PgDn | 向下翻页 | |
H | 屏幕顶部 | |
M | 屏幕中间 | |
L | 屏幕底部 | |
段落移动,以空行区分段落 | ||
{ | 上一段 | |
} | 下一段 | |
括号切换:可定位匹配的括号开始和结束位置 | ||
% | 括号匹配及切换 | 选中括号后按%键可以在开始和结束括号位置来回切换 |
标记: 1、在开发时,可以对代码做标记,需要时可以快速跳转到标记位置。 2、标记名称可以时a-z或A-Z之间任意一个字母 3、使用相同名称,后边会覆盖前边内容,删除标记所在行,标记同时删除 | ||
mx | 添加标记x | |
`x | 定位到标记位置 | |
选中文本(选中文本添加背景色) 1、 ESC可以放弃选中内容,回到命令行模式 2、 可视模式和删除、行选中等命令配合使用 | ||
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl+v | 可视块模式 | 垂直方向选中文本 |
撤销和恢复撤销 | ||
u | 撤销上次命令 | |
Ctrl+r | 恢复撤销命令 | |
删除文本 | ||
x | 删除光标所在字符 | |
d(移动命令) | 删除移动命令对应的内容 | |
dd | 删除光标所在行 | |
数值dd | 删除光标所在行之后的(数值)行 | |
D | 删除至行尾 | |
复制粘贴 | ||
y(移动命令) | 复制 | |
yy | 复制光标所在行 | |
nyy | 复制光标所在行及之后的n行 | |
p | 粘贴 | |
替换 | ||
r | 替换当前字符 | |
R | 替换当前光标后的字符 | |
缩排和重复执行 | ||
>> | 向右进行缩进 | |
<< | 向左进行缩进 | |
. | 重复上次命令 | |
查找 | ||
/str | 向前查找str | |
?str | 向后查找str | |
n | 查找下一个 | |
N | 查找上一个 | |
单词快速匹配 | ||
* | 向后查找当前光标所在单词 | |
# | 向前查找光标所在单词 | |
查找替换命令 1、底行模式下执行 | ||
:%s/旧文件/新文件/g | 全局替换,替换全部匹配内容 | |
:%s/旧文件/新文件/g | 在“选中文本”,即可视模式下,替换匹配内容 | |
:%s/旧文件/新文件/gc | 确认替换,出现提示内容: y-替换;n-不替换;a-替换所有;q-退出替换;l-替换光标所在查找内容,并退出替换模式;^E向下滚屏(不会用);^Y向上滚屏(不会用) | |
分屏命令:当屏幕横向显示不下时常用 | ||
:sp/:split | 横向增加分屏 | |
:vsp/:vsplit | 竖向增加分屏 | |
其他常用命令 | ||
:set number | 显示行号 |