系统管理员的重要工作就是修改和设置某些重要软件的配置文件,因此至少得要学会一种以上的命令行界面文本编辑器。由于所有的UNIX Like都会内置vi,所以每个研究linux的人员都首先要学会vi编辑器。
vim是vi的升级版,准确来说vim是一种程序编辑器。
vi的使用
vi一共有三种模式:一般模式、插入模式、命令行模式。
1 一般模式(移动光标、复制粘贴、查找替换)
- 1.1 移动光标方法
h或左箭头 | 光标向左移动一个字符头 |
---|---|
j或右箭头 | 光标向右移动一个字符头 |
k或上箭头 | 光标向上移动一个字符头 |
l或下箭头 | 光标向下移动一个字符头 |
如果要进行多次移动,可以和数字进行组合。如:向下移动20行,可以使用20j或者20↓。
ctrl+f | 向下移动一页 |
---|---|
ctrl+b | 向上移动一页 |
0或Home键 | 移动到当前行的最前面字符处 |
$或End键 | 移动到当前行的最后面字符处 |
G | 移动到文件的最后一行 |
nG | n为数字,移动到第n行 |
n | n为数字,向下移动n行 |
- 1.2查找与替换
/word | 向下寻找一个名称为work的字符串 |
---|---|
?word | 向上寻找一个名称为work的字符串 |
- 1.3 删除、复制和粘贴
x,X | x为向后删除一个字符,X为向前删除一个字符 |
---|---|
dd | 删除当前行 |
ndd | n为数字,删除光标向下的n行 |
yy | 复制当前行 |
nyy | n为数字,复制光标向下的n行 |
p | 粘贴 |
u | 撤销上一个操作 |
ctrl+r | 重复上一个操作 |
2 插入模式
i,I | i为从光标处插入,I为所在行第一个非空格处开始插入 |
---|---|
o,O | o为向下插入新的一行,O为向上插入新的一行 |
a,A | a为从光标下一个字符插入,A为光标所在行最后一个字符处开始插入 |
o,O | o为向下插入新的一行,O为向上插入新的一行 |
r,R | r为替换光标处的字符一次,R会一直替换光标处的字符,直到按下esc |
Esc | 退出编辑模式,回到一般模式 |
3 命令行模式
:w | 写入(保存)文件 |
---|---|
:w! | 强制写入文件 |
:q | 退出编辑 |
:q! | 强制退出编辑 |
:wq | 保存并退出 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
vim的恢复功能
当使用vim时,vim会在被编辑文件的目录下再新建一个名为.filename.swp的文件。如果文件发生意外没有保存,可以使用.filename.swp来恢复文件。
多文件编辑
可以通过
vim filename1 filename2 …
打开不同的文件
:n | 编辑下一个文件 |
---|---|
:N | 编辑上一个文件 |
:files | 列出目前vim打开的所有文件 |