1. VI编辑器
1.1 Vi 简介
-
-
只能是编辑文本内容,不能对字体段落进行排版
-
不支持鼠标操作
-
没有菜单
-
命令行模式:刚进来处于的模式
编辑模式:输入:i、O、o a A ...
底行模式:按Esc键;然后输入::wq
(wq:保存退出)
vi a.txt #打开a.txt文本进入编辑模式 vi a.txt +10 #打开a.txt文本并且定位到第10行进行编辑 #vim是vi的增强版,更加的智能
命令行模式可以操作的命令:
功能 | |
---|---|
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置连续向下删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置连续向下复制 n 行 |
p | 粘贴 |
u | 撤销 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str |
功能 | |
---|---|
:q | 退出 |
:wq | 保存退出 |
:wq! | 强制保存退出 |
:w | 保存 |
:q! | 修改内容不想保存 |
:w a.txt | 将当前文件另存为a.txt |
:x | 保存退出 |
shift +z+z | 保存退出 |
:set nu | 设置行号 |
:%s/旧文本/新文本/g | 文本替换 |
:12 |
编辑模式 就可以直接编辑了
命令 作⽤
a 在光标后附加⽂本
A(shift + a) 在本⾏⾏末附加⽂本 ⾏尾
i 在光标前插⼊⽂本
I(shift+i) 在本⾏开始插⼊⽂本 ⾏⾸
o 在光标下插⼊新⾏
O(shift+o) 在光标上插⼊新⾏
定位命令:
:set nu 设置行号
:set nonu 取消行号
:G 到最后一行
:gg 到第一行
:nG 到第n行
:n 到第n行
保存退出:
:wq 保存退出
:q 退出
:q! 强制退出
ZZ 保存退出
删除命令:
:dd 删除光标所在行
:n1,n2d 删除指定范围的行
:dG 删除光标所在行到末尾处的内容
:D 删除光标所在行的行尾
搜索和替换命令
命令 作⽤
/string 向后搜索指定字符串
?string 向前搜索指定字符串
n 搜索字符串的下⼀个出现位置,与搜索顺序相同
N(Shift + n) 搜索字符串的上⼀个出现位置,与搜索顺序相反
:%s/old/new/g 全⽂替换指定字符串
:n1,n2s/old/new/g 在⼀定范围内替换指定字符串
注意: 当遇到特殊字符时,需要进⾏转义处理:⽐如 . 写成 . * 写成 * ^ 写成 ^
# % 指全⽂,s 指开始,g 指全局替换 # 起始⾏,终⽌⾏s/要替换的字符串/替换的新的字符串/g 将/g换成/c 询问确认 # eg: : %s/ftp/yang/g 全局替换,把ftp替换为yang # eg: : 41,44/yang/lee/c 从41⾏到44⾏,把yang替换为lee,询问是否替换 # eg: : 41,44/yang/lee/g 同上,不询问,直接替换 # eg: : %s//root//ROOT/g 把/root替换为/ROOT,遇到特殊字符需要进⾏转义处理 # eg: : %s#/bin/bash#/bin/ksh/g 把/bin/bash全部替换为/bin/ksh
使⽤替换命令添删注释 :
# :% s/^/#/g 来在全部内容的⾏⾸添加 # 号注释 ^代表⾏⾸ # :1,10 s/^/#/g 在1~10 ⾏⾸添加 # 号注释 vi⾥⾯查命令 # :!which cp vi⾥⾯导⼊命令的结果 #:r !which cp # I或者O进⼊插⼊模式。