vi介绍编 (3) ex命令
发布时间:2006-10-14 8:54:22   收集提供:gaoqian
◎EX COMMANDS
      以下的命令属於ex编辑器所用.也就是说要在vi执行时需要先换成ex mode (:)
      vi/ex mode切换 於ex mode输入vi 即可.
      
      ! shell command   执行shell命令

            "           解
      
          # 数字        显示选择的行数,每行前面标示出行号.

       * buffer_name    执行该buffer

         [行数]a!       在该行的下一行,产生输入的文字. 行数从 0 开始.
                        :1a!     (在第二(1+1=2)行产生输入文字)
                        接着会出现如下的讯息
                        Entering ex input mode
                        接着您就可以输入文字 按 ctrl+c 结束

         [行数]c!       该行用输入的文字取代. 行数从1开始.
                        :1c!     (在第一行产生取代文字) 接着会出现如下的讯息
                        Entering ex input mode
                        接着您就可以输入文字取代 按 ctrl+c 结束
       
         [行数围]d    将处於该行数围内的文章删除.
                        1,3d     (表示从第1行到第3行删除; ,表示到的意思)
       
    [Ee]dit! file_name
    [Ee]x! file_name    编辑不同的档案,此为编辑file_name,[]表示其中之一。
                        也可以用 :e file_name 或 :edit file_name 编辑不同档案

    exu[sage] [ex命令]  显示该ex命令的使用方式。
                      显示edit的使用方式  :exu edit   显示结果如下
                       +-+-+-+-+-+-+-+-+-+
                       command begin editing another file
                           Usage:[Ee][dit][!] [+cmd] [file]
                       Press any key to continue [: to enter more ex commands]:
                       分别显示出 简易叙述 使用语法 结束或继续
       
    f[ile] [file_name]  显示档案讯息 ( 与vi命令中的ctrl+g类似 )

    [range] g[lobal] /样式/ [ex命令]  将符合条件的样式加以用ex命令处理
                                      可以设定围,若没有围设定表示全部。
                                      若不加命令只会显示符合样式的内容。
                                      如 :g/BSD/ (显示有BSD的行列)
                         
    [range] v[lobal] /样式/ [ex命令]  将不符合条件的样式加以用ex命令处理
                                      可以设定围,若没有围设定表示全部。
                                      若不加命令只会显示不符合样式的内容。
                                      如 :g/BSD/ (显示没有BSD的行列)

            he[lp]      显示求助讯息

       [行数]i[nsert]!  将所输入的文字内容,插入自订的行数.原行数顺延

       [行数]j[oin]!    将该指定行与下一行合。
       
       [行数]l[ist]     显示该指定行(围)。
       
       [围]m[ove] line  将某围的内容搬移到某自订行之後。
                          若将3-5行搬移到第6行之後,指令为:3,5m6 
       
       mk[exrc][!] file_name  将缩写、编辑参数及map写到file_name
       
       [Nn][ext][!] [file ...]  继续编辑某一档案。
       
       pre[serve]        以ex -r 能够恢复的形式储存档案。
    
       [Pp]rev[ious][!]  编辑先前的档案。

       [围] p[rint]    显示围内容

       [行数] pu[t]      将buffer中的内容在特定行贴上。

          q[uit][!]      强制离开

       rec[over] file    回复先前用pre储存的档案,等同於vi -r filename
                         :档案放在/var/tmp/vi.recover资料夹下

          se[t]          设定环境变数,後接想要设定的变数(值)
          se[t] [all]    显示全部环境变数

          sh[ell]        跳脱编辑,回到shell下,可执行其他动作。
                         用exit离开shell。

       so[urce] file     从档案中读取命令

       [range] s[ubstitute] [/被取代的样式/取代样式/]
                         在某围内将符合的样式用取代样式取代。
      
       su[spend][!]      暂停程式进行,回到shell,用fg回复

           st[op][!]     同su!

           ve[rsion]    显示vi编辑器的版本。

           vi[sual]     进入vi (ex mode用)

       viu[sage] [command]  显示vi command的语法,若没有特别指定,则显示全部。

       [围] w[rite][!] [>>] [file_name]  将围内容附加到档案file_name。

       [围] w[rite][!] [file_name]  将围内容另存新档file_name。

       [围] wq[!] [>>] [file_name]  将围的内容附加到档案file_name并离开。
       
       x[!]  强制存档

  ◎参考资料: man vi
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50