- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用vi编辑器
使用vi编辑器
关于vi编辑器的使用,完全可以写一本厚厚的书。本节所介绍的,都是较为实用的内容,可在使用vi编辑器的过程中,不断回头来看看本节,应该有所收获。最后一部分所讲述的进阶使用技巧,初次阅读时可以跳过。有一定经验后再来看,才不会觉得很突兀。
图212 20世纪70年代的计算机(Amdahl 470计算机)
图213 Bill Gates和Paul Allen在使用电传打字机
vi编辑器的过去和现在
UNIX上最古老最基本的编辑器应该是ed,最初由UNIX之父Ken Thompson编写。正则表达式(Regular Expression)这一威力强大的工具在ed中首次得以从理论走向实现。这对UNIX造成了深远的影响。其实,ed是受来自加州大学伯克利分校的QED编辑器的影响,Ken便是从这所学校毕业的。ed是一种行模式编辑器,每次编辑和设置都在一行中进行,现在大家觉得这个编辑器很难用。可是要想一想,在20世纪70年代,许多使用UNIX的人都是用廉价的终端机通过电话线连到UNIX服务器(图212是那个年代的产品)上的,传输速率非常慢,输入后往往需要等一会才能收到系统的响应,所以这种简洁的行模式编辑就很有意义。虽然现在ed编辑器用的很少了,但是它的很多理念比如命令字符、正则表达式却在它的很多后辈身上得以发展。
1977年,加州大学伯克利分校的研究生Bill Joy开发了ex编辑器,这是一种行模式编辑器。行模式编辑器现在已经很少在交互界面下使用了,但在Shell脚本编程等非交互式应用下仍在使用。现在在非交互式应用中,多使用流编辑器来替换行模式编辑器。流编辑器是将待处理的文本视为一整行,称为文本流,因此流编辑器可视为行模式编辑器的变种。awk和sed都是非常强大的流编辑器。
ex编辑器随1BSD(First Berkeley Software Distribution)发布,它具有一种可视化模式(Visual Mode),称为vi。1978年,在2BSD(Second Berkeley Software Distribution)发布时,vi编辑器作为ex编辑器的可视化版本单独发布了。vi编辑器首次使用了全屏编辑的模式。
随着硬件的发展,用户可查看的区域从行扩展到全屏,UNIX上开发了很多种全屏模式编辑器:pico、nano、joe、jed、jove等,但最广泛使用和最有影响力只有两种:vi和Emacs。据说,程序员只有三种:用vi的、用Emacs和用其他的。只是,这两种编辑器的粉丝已经掐架数十年了,因此不要随意在论坛上表现出太强烈的倾向性,不然容易爆发口水战。
vi编辑器的巨大用户群体爆发出了种类众多的功能需求,再加上vi编辑器本身不是自由软件。因此,大家试图改进vi编辑器,vim编辑器是众多尝试之一。Bram Moolenaar于1991年首次发布vim编辑器,它是一种自由软件。vim是“Vi Improved”的缩略词。vim已经成为当今绝大多数Linux发行版中的标准配置:默认的安装中都包括了vim编辑器,当然还有ed编辑器。我们所能见到的vi编辑器其实都是vim编辑器兼容模式。若没有特别说明,本书中将vi编辑器和vim编辑器混为一谈。
vim编辑器目前主流系统的版本
vi编辑器入门
最基本的vi编辑器操作前面已经介绍了,因此用户可以打开文件并退出了。什么?你困在不知道名字的模式中,总是提示无法退出?好吧,狂按ESC键,输入:q!——这是快速逃生通道,至于你修改的东西可能不会幸存,至少你幸存了,足够了。
最初使用vi编辑器一般都会感到比较茫然,不知如何
虽然,通过设置Putty和vi编辑器,可以在vi编辑器中使用鼠标来定位、选择和滚动,但在使用vi编辑器的初级阶段,应该坚持在打字时就不要想着去使用鼠标来定位,坚持尝试用各种按键组合来快速定位。做到手不离开键盘,自然输入速度就渐渐不再成为编程设计的障碍。想想看,本来打算定义一个变量,结果低头看着键盘寻找应该输入的字母,很容易就打断头脑中的设计,甚至完全忘记这个变量用来做什么了。所以,我们至少要做到能盲打后再来编写程序,这就像先要发音正确后再来学习组织语言一样。
图214 IBM键盘(1984年)
对这种把手约束在键盘上的设计理念,导致vi编辑器需要引入命令模式。总是会有很多非文本输入的操作,例如保存、退出、搜索等等。vi编辑器的设计选择了使用命令模式来将键盘上的按键映射成功能键,比较复杂和不太常用的功能就使用特殊字符开头的字符串来实现。
为了避免错误的文件覆盖,vi编辑器使用缓冲区(Buffer)来保存当前正在编辑的内容。也就是说,只要用户没有手动保存,这些内容并没有写入到硬盘上的对应文件中,而是仅仅呆在内存中。
为选择一部分文字,vi编辑器有可视模式、可视行模式和可
文档评论(0)