CentOS linux的vi编辑器及三种模式转换
1.vi编辑器
1.1 什么是vi编辑器
vi编辑器是类unix系统内置的文本编辑器。
vim是vi的增强版本。
1.2 vi编辑器使用
- 语法:vi + 文件名称
1.3 vi编辑器的三种模式
- 命令模式(一般模式): 所有的按键被当做命令执行
- 编辑模式(插入模式): 编辑内容
- 底行模式(底行命令模式): 命令(保存退出,查找替换)
1.4 命令模式下的命令
- 光标命令
字符移动: ↑↓←→ / hjkl
单词移动:
w(W):单词的首字母向后移动,不忽略标点(忽略标点)
e(E):单词的尾字母向后移动,不忽略标点(忽略标点)
b(B):单词的首字母向前移动,不忽略标点(忽略标点)
逐句移动: ( ) 每句结尾.
逐段移动: { } 段落标记空行
移动到文档开头和末尾: gg(开头) G(末尾)
移动到该行的开头和末尾: 0 $
- 基本操作
a(A): 光标后一位插入(光标所在行行尾)
i(I): 光标前一位插入(光标所在行行首)
o(O): 光标下一行插入(光标所在行插入)
dd: 删除光标所在行(10dd)
yy: 复制光标所在行(3yy)
p: 粘贴
u: 撤销
1.5 底行模式下的命令
-
w: 保存
-
q: 退出
-
!:强制
-
查找
:set nu 显示行号
:set nonu 不显示行号
:number 跳转到指定行
:/key: 根据单词查找 (n: 跳转到下一个单词 N:跳转到上一个单词)
:noh: 取消高亮
- 替换
:开始行,结束行 s/旧字符串/新字符串/g
example
:1 s/aa/bb 第一行的第一个aa修改为bb
:1 s/aa/bb/g 第一行所有的aa修改为bb
:. , .+3 s/aa/bb/g 将底行这一行,及下面3行(共4行)中的aa修改为bb
:% s/aa/bb/g 将整篇文章中的aa修改为bb(危险,慎用)