之前实习的时候用过,但是都是不懂的直接搜,加上记忆力差,安居客面试的时候面试官问到了,但是答不出来。直到现在心里还是很痛。。。好好学习,一个一个坑的补回来吧。
vi和vim是linux下的文本编辑工具,而vim是vi的升级版本,不仅兼容vi所有指令,还有一些新的特性在里面。
这篇笔记主要记录vi的基本操作。
一、两个操作模式
一个是输入模式,一个是指令模式。在输入模式下,可以输入文本,在指令模式下,可以输入指令。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(a、i、o)进入输入模式。
二、进入vi
$ vi filename
如果文件不存在,则新建一个内容为空的文件。
view filename
以只读方式打开文件。
三、指令模式
1.进入指令模式
命令 | 作用 |
---|
a | 在当前游标后面输入 |
A | 在当前行末输入 |
i | 在当前游标前面输入 |
I | 在当前行首输入 |
o | 在当前行之下新增一行,并在新增行输入 |
O | 在当前行之上新增一行,并在新增行输入 |
2.游标移动
命令 | 作用 |
---|
h | 向左移动一个字符长度 |
l | 向右移动一个字符长度 |
j | 向下移动一个字符长度 |
k | 向上移动一个字符长度 |
b | 左移一个单词,至词首 |
w | 右移一个单词,至词尾 |
0 | 移到当前行行首 |
$ | 移到当前行行尾 |
+ | 移到下一行行首 |
- | 移到上一行的行首 |
H | 移至视窗的第一行 |
M | 移至视窗的中间一行 |
L | 移至视窗的最后一行 |
G | 移至该文件的最后一行 |
nG | 移至该文档的第n行 |
n+ | 下移n行 |
n- | 上移n行 |
3.视窗移动
命令 | 作用 |
---|
Ctrl + f | 视窗下卷一页 |
Ctrl + b | 视窗上卷一页 |
Ctrl + d | 视窗下卷半页 |
Ctrl + u | 视窗上卷半页 |
Ctrl + e | 视窗下卷一行 |
Ctrl + y | 视窗上卷一行 |
4.删除操作
命令 | 作用 |
---|
x | 删除游标所在的字符 |
X | 删除游标所在的前一字符 |
dw | 从游标当前位置开始向后删除一个单词 |
db | 从游标当前位置开始向前删除一个单词 |
d0 | 从行首删除至当前游标位置 |
d$ | 从游标当前位置删除至行尾 |
D | 同d$ |
dd | 删除游标所在行 |
5.修改操作
命令 | 作用 |
---|
s | 修改游标所在字符,修改完成后按Esc结束 |
S | 修改整行内容,修改完成后按Esc键结束 |
r | 替换当前游标所在字符 |
R | 进入替换状态,直至按Esc键结束 |
cw | 修改一个单词(从游标位置至词尾) |
cb | 修改一个单词(从词首至游标位置) |
cc | 修改整行内容,完成后按Esc键结束,同S |
c0 | 修改行首至游标位置的内容 |
c$ | 修改游标位置至行尾的内容 |
~ | 游标所在字符大小写切换 |
6.指令重复
在指令模式中,可以在指令前面加上一个数字n,则该指令会重复执行n次。常用的有:
命令 | 作用 |
---|
nx | 删除n个字符 |
ndd | 删除n行 |
ns | 修改n个字符 |
7.取消前一动作(Undo)
8.查找字符串
命令 | 作用 |
---|
/字符串 | 从当前游标向后查找该字符串 |
?字符串 | 从当前游标向前查找该字符串 |
n | 从当前游标向后查找下一个字符串 |
N | 从当前游标向前查找下一个字符串 |
9.查看编辑状态
命令 | 作用 |
---|
Ctrl + g | 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改 |
四、保存和退出
命令 | 左右 |
---|
w | 保存,但不退出 |
wq | 保存并退出 |
x | 同wq |
q | 退出,如果当前文件没有保存,禁止退出 |
q! | 不保存退出 |
w file1 | 将内容保存至文件file1中,此时编辑的仍未原文件 |
w! file1 | 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行 |
以上。