您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > SUN OS vi 命令常见问题解答
[vi-faq中文版]0.0-引言--我怎样用这个FAQ这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新学者的问题,一些对vi没有很多经验的人也经常问这些问题.这里面包括诸如“命令模式和插入模式之间的区别”,以及“我怎样拷贝和粘贴”之类的问题.第3节是面向vi的中级用户的,它从问题“我如何查找和替换”开始,逐步深入,直到对vi里面的宏(Macro)的用法讨论为止.第3节还包括了一个vi的快速参考,有一个规范的vi命令列表.再下面,是一个有关“:set”命令的列表,包含了所有能定制vi环境的变量,这些变量也可以在.exrc文件中定义.我们已经在一个运行SunOS和UCB版本vi的机器上验证了快速参考.除了SunOS带的vi外,每个命令都可以在系统V和UCB版本vi运行,但是我个人并没有验证这一点.除非我们在文档中指明,缺省我们假定你处在命令模式下.我们还尝试保留尽可能多的术语,因为在原始的vi文档中使用了这些术语,尽管我可能忘了它的本来含义.0.1-索引第一个文件:0.0-引言--我怎样用这个FAQ?0.1-索引0.2-我可以散发这个FAQ吗?0.3-你能为这个FAQ做什么?1.0-什么是vi?1.1-关于vi有什么重大的交易吗?为什么大家都用它?更进一步说,为什么我要用它?1.2-噢!这听起来不错!有没有理由不用vi?1.3-vi能在多少不同的操作系统下面运行?1.4-好吧,你说服了我.我决定开始使用vi.我该从哪儿开始?1.5-vi有其他一些可用的变种吗?2.0-vi入门2.1-有什么游戏帮助我们学习vi吗?2.2-命令模式和插入模式有什么区别?2.3-等等,我的键盘没有Esc;键,我该怎么办?2.4-那些~s是什么东西?2.5-我无法习惯用hjkl,你有什么建议吗?2.6-我如何才能不存盘就退出?2.7-我怎样插入一个文件?2.8-我怎样查找文本?2.9-我怎样搜索一个控制序列?2.10-我怎样重新格式化文本?2.11-我怎样复制文本?2.12-啊!我刚才敲了一个dG,然后我的论文就没有了!我该怎么办?(或者,我刚才犯了个错误,我该怎么办?)2.13-我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?2.14-所有的:命令都是怎样处理的?3.0-怎样查找和替换?3.1-我怎样在vi中运行一个程序?3.2-啊!我正在写我的论文,系统崩溃了!怎么办?3.3-有没有使vi对程序员更友好的窍门?3.4-宏--我怎样写宏?3.5-我怎样将一个功能键定义成一个宏?3.6-有没有办法缩写文本?3.7-我怎样在当前文档中做拼写检查?3.8-我手头有一个硬拷贝的终端,我还能用vi吗?3.9-好了,是不是处在开放模式下的原因呀?!但是我现在没有用硬拷贝终端,它还是在开放模式呀?第二个文件:4.0-vi档案的在线帮助在哪儿?5.0-好玩的vi诀窍,无聊的宏5.1-好玩的vi诀窍5.2-好玩的宏6.0-依字母顺序的vi快速参考6.1-命令模式的输入选项(:命令)6.2-设置选项(set)7.0-建立.exrc文件7.1-.exrc文件的样本8.0-vi的漏洞9.0-术语表10.0-关于vi的参考书目0.2-我可以散发这个FAQ吗?可以!只要你没有对它做任何修改,或者用它来赚钱.0.3-你能为这个FAQ做什么?首先,把你发现的错误告诉我.如果你有什么建议我们也很欢迎.你认为还不清楚的地方告诉我们,我们同样欢迎.还有,使用vi!(Spreadtheword)我很抱歉我无法将所有对这个FAQ有贡献的人都列出来,因为许许多多的人都给过我建议和帮助,如果我将他们都列出来的话,那么恐怕这张贡献者的清单将和这个文档本身一样长了.1.0-什么是vi?vi是个可视化的编辑器(vi就意味着可视化--VIsual).那么,什么是可视化的编辑器呢?(相对于非可视化的编辑器来说)?可视化的编辑器就是可以让你在编辑文本的时候看到它们.今天,这听起来似乎非常普通,反之,非可视化的编辑器似乎很奇怪.非可视化的编辑器的例子可以举出不少:如ed,sed和edlin(直到相当近的一段时间内,它是DOS自带的最后一个编辑器)等.vi是威廉.侨伊写的,作为BSDUNIX的一部分.后来AT&T也开始用vi,于是标准UNIX也开始用vi了.1.1-关于vi有什么重大的交易吗?为什么大家都用它?更进一步说,为什么我要用它?vi是UNIX下面的缺省编辑器,因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右).这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器.为什么不是别的呢?vi是个强大的编辑器.同样,一旦你了解了vi,你就能很快的编辑你的文件,因为它非常能节省你的敲键次数.由于它在插入和命令两种情况下使用不同的模式,它比大多数的不基于这种模式的编辑器要快.而且,vi非常小(我机器上面的版本只有200K).还有,vi几乎能做任何事,只要你知道如何使它做你想做的事.1.2-噢!这听起来不错!有没有理由不用vi?有.有一个非常好的理由:vi稍微有些难学,如果你开始学的话,vi又慢又让人痛苦,当然,一旦你学会了,vi就快多了.但是学习的过程很慢.有人曾经问我,如果vi是个比较易学的编辑器,它是否直观(intuitive)呢?我一般这样回答:是的,我们有些人是这样认为.但是大多数人认为我们疯了.1.3-vi能在多少不同的操作系统下面运行?UNIX.就是它.尽管如此,还是有很多vi的变种运行在不同的操作系统上.我就在以下一些操作系统上用过vi:UNIX,DOS,OS/2,MACSYSTEM7.(后面有一个有关细节的列表)1.4-好吧,你说服了我.我决定开始使用vi.我该从哪儿开始?好吧,狡猾的家伙.关于vi有很多很好的书:大多数讲UNIX的书至少有一章给了vi,而且有不少是专门讲vi的书.我没有什么偏爱.所以你最好是问问你们那儿的vi高手们他们是从哪儿学来的.还有,到处试.用vi打开一个不重要的文档(你的论文不象是个学vi的好实验品),然后再到处试.我无法想象有人学习vi却不花相当多的时间去到处试试.记住:如果你有些地方不明白了,只要敲两次Esc;键,你就又回到命令模式下了.我要提到的一点是,我想在这里提比较合适,就是如果要成为系统管理员或者其他对UNIX配置做什么修改的话,最好是学学ed或者ex,因为有些版本的UNIX没有把vi放在根分区里面,这样你就可能无计可施了.ed是个不错的选择.1.5-vi有其他一些可用的变种吗?只能列出一部分:STvi(STevie),elvis,vile,vim,和nvi,xvi.elvis适用于:Amiga,DOS,OS/2,Unix,VMS,Atari.STevie适用于:AtariST,DOS,Unix,MacSystem7.MacSystem7可以在很多info-mac的镜象站点获取,在/info-mac/text下.(例如ftp.hawaii.edu)nvi是将和BSD4.4捆绑在一起的vi.vim适用于:Amiga,DOS,MacSystem7,Unix.Amiga,DOS,和源码可以在以下站点换取:ftp.fu-berlin.de/misc/editors/vimMacSystem7可以在很多info-mac的镜象站点获取,在/info-mac/text下.(例如ftp.hawaii.edu)vile适用于:DOS,OS/2,Unix,VMS.xvi适用于:DOS,Unix.vi的变种之间很有很多差异.很多都改进了vi,大多数都可以使用在这个文档种列出的命令,但是有一些不同的地方.更进一步的细节,你可以参考这些变种附带的相应的文档.2.0-vi入门对vi的初学者来说,有些基本的提示.第一,任何时候,手头都要有一份命令摘要.我们将在后面给出一个快速参考/命令摘要.第二,找一本vi方面的比较好的书.这个文档不是学vi的最佳途径(最起码现在还不是),我不敢保证这个文档能教会一个对vi一无所知的人,而很多书已经做到了这一点.但是,我们这里还是给出了不少提示.对选择书籍来说,有一个标准的原则:买之前一定要仔细阅读.要了解这本书对你是否有意义.确信它能在你练习vi的时候有用.和其他的书做个比较--不管怎样,vi可能让你感到非常莫名其妙,而且你要确信这么一点:是书让你糊涂,而不是你低估了学vi的难度.还有,找一些诸如学vi(vilearn),vi向导(vitutor)之类的软件来帮助你掌握vi的基本知识.2.1-有什么游戏帮助我们学习vi吗?这似乎很无聊,但是事实上UNIX系统里面有不少游戏可以帮助你学习使用vi.这些帮助主要是一些基本知识.虽然我还不知道有哪个游戏可以帮你学习vi的所有命令,但我确实知道有一些可以帮助你学习使用hjkl来移动光标.NetHack,一个类Rogue的游戏,就对这非常有帮助.而且它是一个很大的游戏,能玩很长一段时间.我没有贬低其他游戏的意思,这些游戏是:rogue,moria,omega,worm,snake.2.2-命令模式和插入模式有什么区别?vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是vi的优势所在.理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式;在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域,剪切,复制和粘贴文本,还有更多.插入模式是指用户可以真正插入文本.换句话说,命令模式是用来在文件中移动,而插入模式是用来在文件中键入文本.有些命令,例如:a,i,c,C,O,o和其他一些可以从命令模式切换到插入模式.Esc;键或者^C(CRTL+C)可以脱离插入模式而返回到命令模式.你要适应这种差别.它使得vi区别于其他的编辑器.它也使你能在你的手不离开标准键盘做很多事情.2.3-等等,我的键盘没有Esc;键,我该怎么办?试试敲^[(CTRL+[).如果你的键盘有一个Meta;键,再试试它.如果还不行,再试试^3.2.4-那些~s是什么东西?它们仅仅是用来让你知道你的文档末尾在哪儿.实际上它们并不在你的文档里面,所以你用不着担心它们.2.5-我无法习惯用hjkl,你有什么建议吗?首先,如果你的终端设置正确而且你连接的也没有问题的话,你可以使用箭头键.但是,如果你认为你要经常使用vi,那么最好是习惯使用hjkl,因为它们敲起来更快.而且,有时候连接出问题了,使得ESC序列都可能丢失了.(这样你可能就无法使用箭头键了--译注)2.6-我如何才能不存盘就退出?:q!可以做到这一点.如果vi看起来冻住了,确信你没有错敲了个^S.敲^Q可以解开^S.2.7-我怎样插入一个文件?:r文件名;例如,要插入文件/etc/motd,可以敲:r/etc/motd.这将把文件插入到光标处.如果你在r前面指定了一个数字,那么这条命令将把文件插入到那个位置.2.8-我怎样查找文本?/文本;将向前查找,?文本;将向后查找.??或者//将重复上次查找.在UNIX下,这已经是个可爱的标准用法了.而且,在vi中,n将查找文本下一次的出现位置.N重复上次查找,不过逆转了查找的方向.在查找中可以使用规范式.2.9-我怎样搜索一个控制序列?/^V^序列;^V会告诉vi照字面理解下一个字符,不要把它看作是一条命令.2.10-我怎样重新格式化文本?如果你的计算机有一个名叫fmt的程序,你要做的仅仅是在命令模式下面敲!}fmt(记住,不要在前面加:).这可以重新格式化你的文件,从光标所在的位置一直到当前段落的结尾.如果你的机器里面没有fmt这个程序,你就得去找个类似的软件了(我记得在公共域里面有不少这样的程序,但是我对此了解不多)2.11-我怎样复制文本?这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验.字母;yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和拷贝下来的东西的地方),字母;里面的字母必须是a到z之间的一个.字
本文标题:SUN OS vi 命令常见问题解答
链接地址:https://www.777doc.com/doc-3870183 .html