好吧, 狡猾的家伙. 关于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适用于: Atari ST, DOS, Unix, Mac System 7.
Mac System 7能够在很多info-mac的镜象站点获取,在/info-mac/text下.
(例如ftp.hawaii.edu)
nvi是将和BSD 4.4捆绑在一起的vi.
vim适用于: Amiga, DOS, Mac System 7, Unix.
Amiga, DOS,和源码能够在以下站点换取:ftp.fu-berlin.de /misc/editors/vim
Mac System 7能够在很多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的术语,指能够存放剪切和
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




