Linux vi 保存的相关指令
              当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。           在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出,   返回到shell。         
    在末行模式下,输入命令         
    :w       
    Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。       
    [例6]         
    :w   newfile       
    此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:       
    File   exists   (use   !   to   override)       
    此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令       
    :w!   newfile       
    否则可选择另外的文件名来保存当前文件。       
    在末行模式下,输入命令         
    :q       
    系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:       
    No   write   since   last   change   (use   !   to   overrides)       
    提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令       
    :q!       
    Vi放弃所作修改而直接退到shell下。       
    在末行模式下,输入命令         
    :wq       
    Vi将先保存文件,然后退出Vi返回到shell。       
    在末行模式下,输入命令         
    :x       
    该命令的功能同命令模式下的ZZ命令功能相同。
Vi 输入模式 要如何输入资料呢?有好几个指令可以进入输入模式:
新增 (append) 
a 从游标所在位置後面开始新增资料,游标後的资料随新增资料向後移动。 
A 从游标所在列最後面的地方开始新增资料。 
插入 (insert) 
i 从游标所在位置前面开始插入资料,游标後的资料随新增资料向後移动。 
I 从游标所在列的第一个非空白字元前面开始插入资料。 
开始 (open) 
o 在游标所在列下新增一列并进入输入模式。 
O 在游标所在列上方新增一列并进入输入模式。 
    也许文字叙述看起来有点繁杂,但是只要实际操作一下马上可以了解这些操作方式。实务很重要,尤其是电脑方面的东西随时可以尝试及验证结果。极力建议实际去使用它而不要只是猛K文件,才有事半功倍的效用。(注:此段为废话。) 
----------------------------------------
Vi 基本编辑      配合一般键盘上的功能键,像是方向键、[Insert]、[Delete]等等,现在你应该已经可以利用vi 来处理文字资料了。当然vi还提供其他许许多多功能让文字的处理更形方便,有兴趣的看倌请继续。 
    在继续下去之前先来点BCC吧。电脑有许多厂牌,不同的硬体及作业系统。PC也不是仅仅只有IBM PC及其相容品而已。事实上,包括键盘,终端机等等往往都有不同的规格。这代表什麽? 
     在文书编辑软体上会遇这样的问题,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在Unix系统上也一样,几乎各大电脑厂商都有自己的Unix系统,而vi的操作方法也会随之有点出入。我们固然可以用PC的键盘来说明vi的操作,但是还是得提一下这个问题。 
删除与修改 
      何谓编辑?在这里我们认为是文字的新增修改以及删除,甚至包括文字区块的搬移、复制等等。这里先介绍vi的如何做删除与修改。(注意:在vi的原始观念里,输入跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动游标来定位要进行编辑的地方,然後才下指令做编辑。) 
x 删除游标所在字元。 
dd 删除游标所在的列。 
r 修改游标所在字元,r 後接著要修正的字元。 
R 进入取代状态,新增资料会覆盖原先资料,直到按[ESC]回到指令模式下为止。
s 删除游标所在字元,并进入输入模式。
S 删除游标所在的列,并进入输入模式。 
    其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按[Delete]不就得了。而插入状态与取代状态可以直接用 [Insert]切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在PC上。 
    在指令模式下移动游标的基本指令是h,j,k,l 。想来各位现在也应该能猜到只要直接用PC的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。 
    当然PC键盘也有不足之处。有个很好用的指令u可以恢复被删除的资料,