第 3 章 UNIX 文本编辑程序. 第3章 第2页第3章 第2页 UNIX 的文本编辑程序 常用的文本编辑器  行编辑 ed  全屏幕编辑 vi 使用场合  行编辑 ed 常用于脚本程序中,使用输入重定向  例如:安装软件时,用来修改系统配置文件  vi 用于人机交互式编辑文本文件.

Slides:



Advertisements
Similar presentations
VI编辑器的使用 College of Information Science and Engineering
Advertisements

報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
二月春风似剪刀, 这些变化得瞧瞧 主讲老师:王海 2016年1月27日20:00 YY频道:
Tool Command Language --11级ACM班 金天行.
vi工作方式 命令状态:键盘输入解释为命令 vi一启动就进入命令方式,键盘输入解释为命令 一般按键无回显 以冒号可以引入ex命令和查找命令
2016年1月20日20:00 YY频道:
王 璐 中原工学院计算机学院 Linux操作系统 王 璐 中原工学院计算机学院
C语言实验 第一课 标题:学号+姓名.
键盘指法勤练习 漳潭中心学校 周春兰.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
走进Word 认识Word2010的工作界面 计算机专业 赵德玲.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
Linux 的進階檔案處理.
第三章 文本编辑器vi.
第二讲 搭建Java Web开发环境 主讲人:孙娜
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
元素替换法 ——行列式按行(列)展开(推论)
黃印良 本教材引用自 作者:Edward Lee
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第六章 中文处理.
第 5 章 文字編輯工具 內容: Vi Vim.
Linux 操作系统 Vim 编辑器的使用.
第四章 附件 (应用程序软件包).
Chapter 8 Use Linux Text Editor VBird 2005/08/04
作业调度系统常用命令.
敲 字 母 9 味 趣 ——英文输入 ..
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
Gzip编译及调试 曹益华
Visual Studio 2010简捷入门.
第二章 登录UNIX操作系统.
CorelDRAW 基础知识(2) 2课时.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
基于UNIX操作系统的 编程技术 电子科技大学计算机学院 刘玓 联系方式:
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
Logo语言. Logo语言 视图窗口 小海龟 ?: 提示符 l: 光标 命令窗口.
项目二:HTML语言基础.
3Glasses SDK for Unreal Engine Plugin
ES 索引入门
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
雷锦江 Edwin Guide 雷锦江
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第五章 编辑程序vi 概述 1. 编辑器的基本工作流程: 内 存 编 辑 缓 "窗口" 冲 区 磁盘 文件系统 ②编辑文件
詹卫东 第九讲 中文姓名识别 詹卫东
Visual Basic程序设计 第13章 访问数据库
VRP教程 2011.
Python 环境搭建 基于Anaconda和VSCode.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
05 债务重组.
第四章 UNIX文件系统.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
顺序结构程序设计 ——关于“字符串”和数值.
RefWorks使用指南 归档、管理个人参考文献.
考察点:switch\while\for System.in\Scanner char vs int
Presentation transcript:

第 3 章 UNIX 文本编辑程序

第3章 第2页第3章 第2页 UNIX 的文本编辑程序 常用的文本编辑器  行编辑 ed  全屏幕编辑 vi 使用场合  行编辑 ed 常用于脚本程序中,使用输入重定向  例如:安装软件时,用来修改系统配置文件  vi 用于人机交互式编辑文本文件

第3章 第3页第3章 第3页 vi 的启动方法 命令格式  vi 文件名列表 后边可以指定 0 个或者多个文件 例如 vi try.c

第3章 第4页第3章 第4页 设置 vi 选项( 1 ) vi 有 40 多个选项控制 vi 的运行, 有两种设定方法 使用.exrc 文件  vi 启动时自动读取用户主目录下文件.exrc 获取自设 定的 vi 选项  例如:文件.exrc 中含有如下两行:  set number 每一行时,在左边列出行号  set showmode 在屏幕右下角标志出当前状态

第3章 第5页第3章 第5页 设置 vi 选项( 2 ) 在 vi 中键入 set 命令  命令格式  设置选项 :set option  取消选项 :set no option  例如  :set number 每行左边列出行号  :set nonumber 每行左边不列出行号  :set showmode 屏幕右下脚标出当前状态  :set noshowmode 屏幕右下脚不标出当前状态  :set all 列出所有开关的当前状态

第3章 第6页第3章 第6页 vi 的两种工作状态( 1 ) 命令状态:键盘输入解释为命令  vi 一启动就进入命令方式,键盘输入解释为命令  一般按键无回显  以冒号可以引入 ex 命令和查找命令  编辑命令 i a 等,可以从命令状态转到文本状态

第3章 第7页第3章 第7页 vi 的两种工作状态( 2 ) 文本状态  键盘输入解释为输入的文本  可以输入多行,每输入完一行后按回车转入下一行  正文输入时有回显  输入完毕按键盘左上角的 Esc 键,返回到命令状态

基本编辑命令

第3章 第9页第3章 第9页 正文插入 命令 i  在当前字符前插入正文段,直至按 Esc 键 (insert) 命令 a  在当前字符后插入正文段,直至按 Esc 键 (append) 命令 o  在当前行后插入正文段,直至按 Esc 键 (open) 命令 O  在当前行前插入正文段,直至按 Esc 键 (open)

第 3 章 第 10 页 光标单字符移动 单字符移动(四个字母键盘上相邻的按键)  h 光标左移一列  j 光标下移一行  k 光标上移一行  l 光标右移一列  有的终端可以直接使用键盘上的方向键代替这四个字母 命令前加一整数,表示这个命令连续执行多少遍  5h 光标左移 5 列  6j 光标下移 6 行  23k 光标上移 23 行  10l 光标右移 10 列  注意:在 vi 命令状态下的按键命令没有回显

第 3 章 第 11 页 翻页 命令  Ctrl-b 向后翻页 (Backward)  Ctrl-f 向前翻页 (Forward)  Ctrl-u 向上翻半页 (Up)  Ctrl-d 向下翻半页 (Down) 注意  vi 把文件尾方向定义为向前,文件头方向定义为向后  有的键盘用 PgDn 键代替 Ctrl-f ,用 PgUp 键代替 Ctrl-b  也可以使用下面的命令  6Ctrl-f 向前翻 6 页  15Ctrl-b 向后翻 15 页

第 3 章 第 12 页 光标行内快速移动 行尾行首  将光标移至当前行首 ^  将光标移至当前行尾 $ 移动一个单词  移到右一个单词 w W  移到左一个单词 b B  也可以使用 6w 3W 5b 10B 命令 wb 与 WB 区别:对 “ 单词 ” 分界符的定义不同  wb 命令:非字母,数字,下划线之外的字符  WB 命令:仅以空白符(空格 / 制表符 / 回车)

第 3 章 第 13 页 光标移动到指定行 移到指定的行  :476 将光标定位于第 476 行  :1 将光标定位于第 1 行(文件首)  :$ 将光标定位于文件尾  :$-10 将光标定位于文件倒数第 10 行 在描述行号时可以使用  圆点(. )代表当前行号,  $ 代表最后一行的行号 括号配对 %  把光标移到一个花括号 ( 或圆括号,或方括号 ) 上, 按 % 键,则光标自动定位到与它配对的那一个括号

第 3 章 第 14 页 删除命令和剪贴板 注:被删除的内容进入剪贴版 删除字符  删除当前字符的命令 x  命令 5x 删除从当前光标开始的 5 个字符 删除行  删除当前行的命令 dd  命令 3dd 删除从当前行开始的 3 行 删除块  删除到配对括号命令:将光标定位在括号上 d% 复制到剪贴板 yank( 不删除,只拷贝到剪贴板 )  yy 与 y%  paste 取出剪贴板中内容 p

第 3 章 第 15 页 字符替换 替换光标处字符 r  ra 命令将当前光标处字符替换为 a  将当前光标处开始的三个字符依次替换为 abc ,则 需要按命令 rarbrc 替换若干字符 R  例:命令 Rabcdef ,然后按 Esc 键  该命令把从当前光标开始的字符依次替换为 abcdef , 用 Esc 来结束多字符替换命令

第 3 章 第 16 页 取消和重复 取消上一次的编辑操作 (undo) u  如:误删了一段正文,用 u 命令可撤销删除  如:把文件中的所有 abc 字符串替换成 xyz 字符串, 用 u 命令可撤销替换 重复上一次的编辑操作.  按圆点键,可以重复上一次的编辑操作  例如:按 3dd 命令删除了三行,然后按圆点键就再 删除三行,接着连续按圆点键,每按一次删三行

第 3 章 第 17 页 文件操作命令 存盘退出  ZZ  :wq 存盘不退出  :w 不存盘退出  :q! 读入文件 xyz.c 插入到当前行之下  :r xyz.c 写文件, 把第 50 行至文件尾的内容写到文件 file1 中  :50,$w file1  :50,$w! file1 强制覆盖

第 3 章 第 18 页 块操作 删除,并拷贝到剪贴板  :10,50d 删除第 行  :1,.d 删除文件首至当前行的部分  :.,$d 删除当前行到文件尾 不删除,拷贝到剪贴板  :10,50y 复制  :5,10co56 复制第 5-10 行到第 56 行之下 移动  :8,34m78 移动第 8-34 行到第 78 行之下

第 3 章 第 19 页 行合并、刷屏和状态显示 两行合并 (Join) J  当前行下面的行合并到当前行 刷新屏幕显示 (load) Ctrl-l 状态显示 Ctrl-g  在屏幕最下面一行列出正在编辑的文件的名字,总 行数,当前行号,文件是否被修改过等信息

查找与替换

第 3 章 第 21 页 模式查找 用 “ 正则表达式 ” 来描述一个字符串模式 查找命令 /  格式 /pattern  例: /[0-9][0-9]* 继续查找命令  n 向下查找下一个 next  N 向上查找下一个  循环式搜索

第 3 章 第 22 页 模式替换 (1) 替换命令 (substitution)  格式 : n1, n2 s/ pattern / string /g  例  :1,50s/abc/xyz/  :1,50s/abc/xyz/g  :50,80s/^// 第 行右移 4 列  :50,80s/^// 第 行左移 4 列  :1,$s/ *$// 消除尾部多余的空格  :1,$s/a[i]/b[j]/g 不能把 a[i] 替换为 b[j]  :1,$/a*b/x+y/g

第 3 章 第 23 页 模式替换 (2) 替换字符串中字符 & 代表被模式所匹配的那部分  例 设文件当前只含有 2 行,每行为一个整数,内容为 执行命令 :1,$s/[0-9][0-9]*/ & host&/ host host host10

第 3 章 第 24 页 模式替换中的转义符 尤其是编辑 C 语言源程序时需要 将 a[i]*b[j] 替换为 x[k]*y[n] 的命令  :1,$s/a\[i]\*b\[j]/x[k]*y[n]/g 将 buf.len/1000 替为 buffer.size/1024 的命令  :1,$s/buf\.len\/1000/buffer.size\/1024/g  模式串和替换字符串中的斜线前加转义符 \ 以区别 于替换命令格式中所必须的斜线 将 *pointer 替换为 &record :1,$s/\*pointer/\&record/g

第 3 章 第 25 页 更灵活的替换 (1) 模式描述中增加 \( 和 \)  在正则表达式中圆括号,仍然代表它自身  在正则表达式中出现的 \( 和 \) 不影响匹配操作 例  [a-zA-Z_][a-zA-Z0-9_]*->number  \([a-zA-Z_][a-zA-Z0-9_]*\)->number 替换字符串中的 \0 \1 \2 ……

第 3 章 第 26 页 更灵活的替换 (2) 将 “ 变量名 ->number” 替换为 “ 变量名 ->num” :1,$s/\([a-zA-Z_][a-zA-Z0-9_]*\)->number/\1->num/g 将日期格式 “ 月 - 日 - 年 ” 改为 “ 年. 月. 日 ”, 比如:将 替换为 使用命令 : :1,$s/\([0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]*\)/\3.\1.\2/g 替换字符串中的 & 可以用 \0 代替 :1,$s/[0-9][0-9]*/ & host&/ 也可以用 :1,$s/[0-9][0-9]*/ \0 host\0/

第 3 章 第 27 页 其他软件中的应用 其他软件也使用正则表达式实现灵活的字符串 匹配与替换  UNIX 命令 ed , sed , expr  Cisco 路由器的 IOS 配置  Windows 的 Visual C++ 的编辑器  不同软件中的正则表达式定义可能会有些差别