vi编辑器
1,vi版本:vi —— vim
ps:查看进程
进程 ID 时间 终端 进程名称
ps -t 终端(查看指定终端进程)
vi 回车(提示vi版本信息)
2,vi特点
(1)支持语法加亮:保留字(关键字)
(2)支持多窗口:同时可以打开多个文件
(3)支持多级撤销
(4)支持指令历史记录
(5)加密文件
3,vim工作模式:
指令模式:输入的都是指令(默认模式)
编辑模式:输入字符
创建(修改)文件 vi /路径/文件
vi /root/prog.c
指令系统——>编辑系统——>指令系统
注:编辑模式的界面左下角有“INSERT”或“插入”
4,指令模式切换编辑模式
(1)功能键:insert
(2)i 等价于 insert ,功能相同
(3)a 在光标所在字符之后插入数据
(4)I 在光标所在行的行首插入数据
(5)A 在光标所在行的行尾插入数据
(6)o 在光标所在行的下方新加一行,然后插入数据
(7)O 在光标所在行的上方新加一行,然后插入数据
(8)s 删除光标所在字符,插入数据
(9)S 删除光标所在行,插入数据
(10)cw:删除光标所在单词插入数据
5,编辑模式返回指令模式:功能键 ESC
6,vim指令模型:
长指令:以冒号开始的指令:commant
短指令:直接输入的指令(类似Windows快捷键)隐藏
7,长指令:
:command
: w 保存
:w filename 另存为(:w -test.c ) 注:文件以“-”开头
:q 退出
:wq 保存退出
:wq! 强制保存退出
:set nu 显示行号
:q! 强制退出
:set nonu 隐藏行号(默认)
8,移动光标
(1)方向键:上下左右
(2)回车:下一行
(3)shift组合:同一个屏幕内移动光标
shift + h 屏幕第一行
shift + m 屏幕中间行
shift + l 屏幕最后一行
(4)ctrl组合:翻页
ctrl + f 向下一页
ctrl + b 向上一页
ctrl + u 向上半页
ctrl + d 向下半页
(5)G :把光标移动到文件尾
(6)gg:把光标移动到文件的第一行
(7): 行号 :把光标快速定位到指定行
(8)小括号:光标移动一句( 向上一句 , )向下一句
(9)大括号:光标移动一段{ 向上一段 ,} 向下一段
(10)0 :把光标移到行首,功能键 = Home
(11)$:把光标移到到行尾,功能键=End
9,vi操作指令
(1)删除光标所在字符:x 功能键=del(s切换工作模式)
(2)删除光标所在单词:dw,Ndw删除N个单词
(3)删除光标所在行:dd,Ndd删除N行(向下删除)
注:vi删除数据放入缓存
(4)粘贴:p
(5)复制单词:yw Nyw(复制N个单词)
(6)复制行:yy Nyy(复制N行)
(7)d0:删除前半行(从光标所在字符删除到行首)
(8)d$:删除后半行(从光标所在字符删除到行尾)
(9)dgg:从光标所在行删除到文件首
(10)dG:从光标所在行删除到文件尾
(11)y0:复制前半行
(12)y$:复制后半行
(13)ygg:从光标所在行
(14)yG:从光标所在行复制到文件首
(15)U(大写):撤销光标所在行修改
(16)u:撤销上一步操作
注:ctrl+z 挂起进程(暂停)
继续运行挂起进程 fg
(17):e!撤销所有光标所在字符
(18):r 替换光标所在字符
for(i=1;i<n;i++)
(19)R 替换状态(覆盖)
编辑模式(追加) insert 切换
7,vi查找
(1)“/”字符串 向下查找指定字符串
(2)?字符串 向上查找指定字符串
? http n 下一个 N 上一个
注:查找包含字符串“http”的所有字符串
(3)/ \<单词>\ x向下查找指定单词 \<单词开始 \> 单词结束
/\<http\ >
(4)? \<单词\> 向下查找指定单词
(5)* 向下查找光标所在单词
(6)# 向上查找光标所在单词
(7)g* 向下查找光标所在字符串
(8)g# 向上查找光标所在字符串
8,字符串替换
(1):s /原字符串/目标字符串 替换光标所在行的第一个关键字符串
:s /for/while
(2):s /原字符串/目标字符串/g 替换光标所在行的所有字符串
:s /for/while/g
(3):%s /原字符串/目标字符串 替换所在行的第一个关键字符串
(4):%s /原字符串/目标字符串/g 替换所在有关键字符串
9.多窗口:同时打开多个窗口
vi /路径/文件1 /路径/文件2 .....
10,查看文件属性 ls -l
文件类型与权限 连接数 拥有者 拥有组 大小(B) 创建日期 文件名
(1)文件类型:第一列第一个字符
d 目录
- 普通文件
l 链接文件
c 字符设备文件
d 块设备文件
(2)访问权限
权限r=读(cat,more,head,vi) w=写(vi,mv,rm) x=执行
用户 拥有者(创建者) 同组用户 其他用户
(3)连接数:文件名称的个数
注:文件存储
数据区 —— 文件名