12-软件开发工具-95页精选文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

:w>>file 件file的后面。
将编辑文件添加到磁盘文
: 10,20w>>example 将 第10行 至 第20 行添加到文件example之后
如果用户曾在vi中修改过正文,则先要执行:w 命令将编辑文件盘后才能用:q命令退出vi,或 直接执行保存文件后退出vi的命令
:wq
不存盘而强制退出的命令为
“!cc 源文件”或“ !cc 源文件 -o目标文件” 命令。记下编译时的出错信息,按RETURN返 回到vi中去修改。
最基本的vi命令
vi filename.c i(或a) 在光标之前(或之后)插入 o(或O) 在当前行下(或上)面插入 BACKSPACE(或DELETE)键删除 ESC键退出插入状态
12.3 库的维护
12.3.1 库的概念
一个库文件是由一组文件通过运行ar库维护 程序构成的,多数库文件是目标文件的集合。
从当前行一直删到第一行
大部分的删除命令都可带有重复数,如
10x
删除自光标位置起的10个字符
d5w
删除自光标位位置起的5个字
(四)修改命令
1. 一对一的字符替换(replace) r 字符 替换光标所在字符,如 ra 用字符a替换光标所在字符 3rabc 用abc三个字符替换 自光标起的三个字符
R输入串 用输入串一对一地替换自光标位置 起的任意多个字符,直至按ESC键 2. 替换指定数目的字符和行(substitude)
(一)搜索命令
当用户键入了‘/’后,vi在最底行(命令行)显示 字符‘/’和光标,接下来就可以键入查找模式了。 可以用正则表达式指定模式。
用‘/’命令查找模式时,从当前的光标位置向下 查找匹配模式的第一个字符串,光标停留在该字 符串的第一个字符上。
‘ ?’ 命 令 是 ‘ /’ 命 令 的 反 向 搜 索 方 式 。 使 用 n(next)命令,用户不必输入模式就可以按原方向 继续上一次的查找。使用N命令则按反方向继续查 找。例:
s 替换指定数目的字符,如 3sxyz 用xyz替换光标开始处的三个字符, 按ESC键退出替换,但输入部可以多于3个字符, 也可少于3个字符。
(五)缓冲区与删除、抽取、放置命令
1. 通用缓冲区
vi编辑程序有一个通用缓冲区和26个有名缓冲区。 所有的删除命令还把被删正文置入通用缓冲区。 用户可以用p(put)命令将通用缓冲区的内容取出 放置到指定位置,故用删除命令和放置命令的组 合可以实现把编辑缓冲区中的数据从一个位置搬 移到另一个位置。例如:
删除地址部分指定的文件行,
如不指定地址,则只删除当前行。如
:.,-10d (共11行)
删去当前行至当前行上面10行
行移动
:[地址]m[单地址] 将地址部分指定的文件行 移到起始地址为单地址的地方。 例:
:10m20
将第10行移到第20行之下
(四)读写文件
读文件命令的模式为
:[单地址]r文件 将文件中内容插到指定的地 址位置后,地址缺省为当前行,例:
3. 行首尾移动
0 光标移到当前行行首(第一列) ^ 光标移到当前行中第一个
非空白字符处 $ 光标移到当前行行尾
4. 以行为单位移动
n RETURN 光标下移n行 G 光标移到文件尾
5. 以屏幕为单位移动
要使光标快速地在垂直方向移动以浏览或处理 文件可以使用以下命令:
H (Hight) 光标移到屏幕顶部 M (Middle) 光标移到屏幕中部 L (Low) 光标移到屏幕底部 以下命令使得编辑缓冲区数据在屏幕上“滚 动”,而光标在屏幕上的相对位置并不改变: ^F (Fowlow) 下移一屏 ^B (Back) 上移一屏
对字符串进行替换 :w [file] 则将整个编辑缓冲区写入文件 :! shell命令 在vi程序中执行shell命令
:wq 保存文件后退出vi :q! 不保存文件退出vi
12.2 C编译系统
12.2.1 C编译基本过程
cc是UNIX系统中的c语言编译程序,它能完成 宏扩展、文件包括、编译、优化、汇编连接和 装入等多种功能。
2yy
抽取当前行及下一行,将光标移到新的 位置后用p命令把这二行拷贝至新的当前 行 之 后 。 类 似 地 y3w 抽 取 3 个 字 , 而 4y3w则抽取12个字。
(六)其他命令
u 废除上一条命令所做的修改 . 重复执行上一个命令
12.1.3底行命令
在vi命令状态下,键入‘/’,‘?’或‘:’, 光标就跳到屏幕的最底行,在该行可以 输入对文件操作的命令。

/\ < m[ae].*y
查找一个字的首部含有m[ae].*y模式的串。该模
式将匹配many,may,merry等单词。
(二)字符串替代
:[地址] s/模式/替代串[/gcp] ,例: :s/\<many\>/a lot of/
在替代之前请求确认,可以再加上‘c’ :s/UNIX/Unix/cg
要删除指定模式的串,可将替代串部分置为空: :s/S[ae]*ing//gp
字符串替代命令中如不指定地址部分,则仅对 当前行执行替换,否则替代命令在指定的地址 范围内执行。
地址部分格式举例如下:
地址
搜索范围
15
第15行
5,15
从第5行至第15行
1,.
从第1行至当前行
.,$
从当前行至最后一行
再到/lib和/usr/lib中查找。
12.2.6 一个使用cc的综合例子
cc -Ddebug -O example.c more.c io.s unit.o -o example -lm
cc首先调用预处理程序,将源程序中说明的头文 件包含进来,并将标识符debug的值置为1,处理 有关条件编译的事务;
:q!
(六)设置参数命令
:set nu(mber) 在每一文件行前面 显示行号
:set nonu(mber) 取消行号,所有 的设置命令都可以在参数前加上“no”取 消。
屏幕上显示的行号在编辑缓冲区中是不 存在的,故在存盘时不会把行号存入文 件中。
12.1.4 在vi程序中执行shell命令
cc编译命令的一般形式是: cc [ 选项 ] 源程序和目标代码文件表 [-l库...]
2. 编译选项
影响cc编译阶段的选项是: -g 调试选项。这个选项使得编译程序
在最终的可执行目标文件中包含附加的 关于变量和源程序语句的信息,这些信 息 对 于 运 行 符 号 调 试 程 序 sdb 是 必 须 的 。 -O 优化选项。该选项调用外加的编译 步骤——优化程序,以生成更有效的代 码。
h 光标左移一个字符单位 j 光标下移一个字符单位 k 光标上移一个字符单位 l 光标右移一个字符单位 0 光标移到当前行行首(第一列) $ 光标移到当前行行尾保存文件后退出vi ^F (Fowlow) 下移一屏 ^B (Back) 上移一屏
x
删除光标位置的一个字符
dd 删除当前行
ra 用字符a替换光标所在字符
不用-o选项,则存入名为a.out的文件中。
-lx 这个选项是档案库名/lib/libx.a的
缩写。如果该档案库不存在,ld程序再看
/usr/lib/libx.a。库名参数x不限于单个
字符,它可以是一个字符串。
-Ldir 当用-lx指定档案库时,先在-L 选 项 中 指 出 的 dir 目 录 中 查 找 档 案 库 ,
(三)删除命令
在 用 户 输 入 数 据 并 用 ESC 键 退 出 了 插 入 状 态回到了命令状态后,就可以用删除、修改等 命令修改正文。删除命令主要有以下几个:
x
删除光标位置的一个字符
dw
删除光标位置的一个字
(或D) 删除自光标到本行未间的正文
dd
删除当前行
dG
从当前行一直删到最后一行
d1G
(二)输入方式
i(或a) 在光标之前(或之后)插入 o(或O) 在当前行下(或上)面插入 在输入过程中,你如果打错了一个或多个字符, 可以用BACKSPACE(或DELETE)键删除它们。 注意,在一些终端上,插入过程中不要使用 ←、↑、→、↓键(在命令行输入命令时也一 样)。 在删除了这些字符后,你可以接着输入正确的 数据,新输入的字符,将覆盖被删字符。
Vi的基本工作方法
vi有两种基本工作方法,一种是输入方法,另 一种是命令方式。
在输入方式,用户键入的任何内容都插到编辑 缓冲区,直到按下ESC键才退出输入方式,回 到命令方式。
在命令方式,用户键入的内容作为命令解释, 以执行vi提供的几十条编辑功能。
一种特殊的命令方式是底行命令方式,即在输 入命令‘:’时,该字符连同光标移到了屏幕的 底行,在该行上可执行一切行编辑命令。
操作系统
第二章 软件开发工具
陆松年
12.1 文本编辑器vi
12.1.1 vi 概要
vi [文件…] 通常一次只编辑一个文件。如果指定的文件不存
在,vi就为你创建一个。如果不指定文件名,则必 须在退出vi时指定存入的文件。 在编辑一个已存在的文件时,vi将磁盘中文件的内 容拷贝至内存编辑缓冲区,所有的输入、修改等 操作都仅对编辑缓冲区内的数据起作用,只有当 要求vi写入文件时,才用编辑缓冲区的内容替换原 文件的内容。
:$r myfile 到编辑文件尾。
将文件myfile中全部内容插
写文件的格式为
:[地址]w[文件]
如不指定地址,则将整个编辑缓冲区写入文件;
如不指定文件,则将缓冲区数据写入调用vi指定 的原文件;
如指定的文件已在,而你确实想覆盖它,可用
w!file命令。
隔一段时间打一下w命令较为安全。还可使用 添加写的命令,如
然后调用编译程序,生成example.c,more.c的 汇编语言目标程序example.s和more.s,并对它 们进行优化;
再调用汇编程序生成目标代码example.o、 more.o和io.o;
最后调用连接/装入程序将cc生成的目标代码,参 数表中列出的目标代码和数学库中的一些档案文 件连接起来,对它们进行重定位,并生成可执行 的二进制文件example。
12.2.5 连接装入程序
扫描命令行中的目标文件和库文件参数 libc.a: 标准c函数库,当cc生成二
进制可执行文件时自动搜索该库。 libm.a: 数学函数库。 libplot.a 绘图子程序库。
连接/装入选项
-o name 该选项使得最后生成的二进制 可执行代码存入名为name的文件中,如
nsstr 用str替换光标开始处的n个字符
nyy 将n行数据拷贝至缓冲区 p 把缓冲区行拷贝至新的当前行之后
u 废除上一条命令所做的修改 :set nu(mber) 在文件行前面显示行号
:set nonu(mber) 取消行号
/str 搜索指定模式的字符串str :[地址] s/模式/替代串[/g]
.,+25
从当前行至当前行后25行
1,$
文件中的全部行 例:
:1,$s/ten/10/g 在整个文件中用字符串10 替代字符串ten,即:
ten->10, often->of10, tenant->10ant
:1,$s/\<ten\>/10/g 仅对单词ten替换成10
(三)行编辑命令
删除命令
:[地址]d
12.1.2 屏幕编辑命令
(一)移动光标命令 1. 以字符为单位移动(包括垂直方向)
在命令状态下光标控制键←、↑、→、↓ 使用一些单字母的命令来移动光标:
h 光标左移一个字符单位 j 光标下移一个字符单位 k 光标上移一个字符单位 l 光标右移一个字符单位
2. 以字、句子、段落为单位移动
w 光标移到下一字的首字符处
d5w命令删去光标所处位置起的五个字,并把删 去的5个字置入通用缓冲区。将光标移动到新的位 置后用p命令可使这5个字插到新的位置上。又如:
先执行3dd命令,将光标移到指定行后再执行p命 令就把原光标所在位置起的三行正文搬到了新的 位置。
如果用户不想删去正文就可以使用 y(yank)命令。用y命令和p命令的组合 可以实现数据的拷贝。如使用命令
:! shell命令
在shell命令执行完成后,按RETURN返回vi。
利用在vi中执行shell命令的功能可使用户在编 写、调试源程序不必经常要进出vi。
源程序输入完成后先用:w命令存盘,然后在vi 中执行编译程序,如
!cc %
命令中‘%’代表当前文件名,如果你的系统不 支持‘%’,也可用
相关文档
最新文档