vi介绍编 (1、2、3)

来源:互联网 发布:双目摄像头 算法 编辑:程序博客网 时间:2024/05/26 09:57

vi介绍编 (1) vi快速入门

本文出自:OHaHa的学习心得[ohaha.ks.edu.tw] 作者:蓝色泡泡(panda@ks.edu.tw) (2002-03-16 08:00:00) 

◎前言
  
    我是pico的使用者,在我是redhat linux使用者的时候,
    当时我觉得pico给我的感觉很亲切,功能也很强大.
    
    了FreeBSD之後,突然发现竟然没有pico,需要额外安装
    pine才能够取得.但这也无妨,反正安装很快...
    
    直到有一天,当我要做取代的动作..这时....pico就....
    於是我投向了vi ...去了解他的规则表示式,
    一个简单的小动作 让繁琐的工作瞬间解决.
    
    不但如此..vi 是所有unix-like都有的编辑器...不用额外安装
    让您在不同系统上也能够很快的进入状况.
    
  ◎FAST STARTUP
  
     若您之前不曾使用过全萤幕的编辑器,那麽您可能连一些简单的编辑都有问题.
     如此您可能要找一个已经稍微了解vi使用的人来带领您.
 
     vi是一个萤幕编辑器,这表示了vi几乎用去了萤幕上的
     每一行空间来展示档案的内容,除了萤幕上的最後一行.
     这一行是用来让您发号命令给vi及vi给你一些相关档案资讯时用的.
    
     其他您必须了解的是vi是一个模式型编辑器.举例来说:
     你能输入文字或者是执行命令,但是你必须在正确的模式才能够执行.
    
     您一刚开始编辑一个档案时,您处在命令模式(command  mode).
     有一些命令能够让您切换到输入模式(input mode).
     然而,只有一个键能够让您离开输入模式,那就是键盘左上的<Esc>键
     若您不了解您目前处於何种模式,您可以持续的按,直到vi发出声音警告您,
     如此您已经回到命令模式.当您尝试做了一些vi所不允许的事情,
     正常来说vi会发出"哔"声(本机操作时)
          
     要开始编辑一个档案您可以这样做:
       $ vi file_name <按enter键>
     
     然後输入 :set verbose mode
     然後vi会提醒您:
     :set the mode option may never be turn on
     
     :虽说如此 但对初学者来说 有多些讯息提示总比没有好
        放心 离开vi後就会恢复原先的noverbose mode
        
     如此可以让vi当你产生错误时给予你多一些的讯息并当您猛按<Esc>键时
     ,会在萤幕的最下端显示如下的讯息,提醒您已在命令模式.
     Already in comman mode 
     
     :命令皆需要在命令模式下实行.
     
    △简易移动命令
          h      将标往左移动一个字元.

          j      将标往下移动一行.

          k      将标往上移动一行.

          l      将标往右移动一个字元.

       <方向键>  上下左右键也应该可以发挥作用.
     
          :若纯粹使用windows 内建的telent方向键无法使用..
             所以知道hjkl的用处也不错啦..
    
    △简易搜寻命令
         /text   搜寻text字串
                 若今天我要搜寻panda则是 /panda , / 为搜寻命令.
                
    △模式切换       

         a      在标後可以新增开始新增

         i      在标前可以开始新增文字

         o      在标的下方新增一行,并可以开始输入文字.

         O      在标的上方新增一行,并可以开始输入文字.

       <Esc>    当你今天用a,i,o,O进入输入模式,可以用<Esc>键回到命令模式.

          :经个人使用发现 模式切换只要记住几个就好 依照一般输入习惯,
             建议初学者记住a,O就好 (虽然到最後您会在不知不觉中全部记下)
             尤其是O看似没有o好用,但是今天若您想要在最上方新增一行时,
             记得O这个指令真是方便阿..
     
    △文字处理命令        
       : 
             yy     标所在行.
             p      在标所在的下一行贴上所的资料.

       删除:
             dd     将标所在行删除.
             x      将标所在的那个字元删除.

       储档:
             :w     以原档案名称储存档案.
             :w file_name   另存新档,档名为file_name

       离开:
            :q      离开编辑及vi,若您已经编辑过档案vi会拒绝您离开. 
            :q!     强制离开vi 不论情况

       : 所谓的一行 有可能在萤幕上是很多行(因为萤幕的一行摆放不下)
           只要没有换行符号产生 那就称之为一行,用标移动您就会明.
  
  ◎小结:以上这些只是基础的vi功能,熟悉了这些,您已经会了简单的文书处理,
         已经可以逐渐摆脱pico之类的编辑器,投向vi的怀抱.
         过一阵子,当您渐渐了解vi的强大,ㄏㄏ...

vi介绍编 (2) 参数简介

本文出自:OHaHa的学习心得[ohaha.ks.edu.tw] 作者:蓝色泡泡(panda@ks.edu.tw) (2002-03-17 08:00:00)

◎ex, vi, view - text editors

  ◎SYNOPSIS 
   
     vi [-eFGlRrSv] [-c cmd] [-t tag] [-w size] [file ...]
     ex [-eFGRrSsv] [-c cmd] [-t tag] [-w size] [file ...]
      
  ◎DESCRIPTION
  
     ex和vi是相同程式但不同介面,ex是一行处理的(line-oriented),
     vi是以全萤幕为基准的(screen oriented).二者能相互切换.
    
     View相当於vi使用-R(唯读)参数
    
  ◎OPTIONS

       -e     以ex模式开始编辑,如同用ex编辑一般。
              vi -e filename 等同於 ex filename

       -F     当第一次编辑时,不要让vi整个档案。
              (预设是整个档案,以避免当您在编辑时,他人更改这个档案。)

       -R     以唯读模式开启,如同以vipw开启档案,或在命令列中设定readonly参数。

       -r     重新取得某个特定档案,若没有指定档案,档案表列会被重新取得。
              若没有该指定档案,档案会被视为没有-r参数编辑。

       -S     以安全编辑模式启动,不允许所有的外部程式存取。

       -s     进入batch模式,只能应用在ex编辑。batch模式在执行ex scripts非常有用。
              一些及时资讯及其他使用者导向的讯息被忽略(不显示),
              没有开始档案或环境变数被读取。

       -w     设定基本的视窗大小,用以定义显示的行数。

       -v     以vi模式开始编辑,如同vi 或view命令。

       ex/vi从标准输入读取讯息,在vi介面, 若标准输入不是一个终端机,会产生错误。
       在ex介面,若标准输入不是终端机,无论如何ex会试着从他读取命令。
       然而,此时会以batch模式进行,如同-s参数被指定。

vi介绍编 (3) vi命令

本文出自:OHaHa的学习心得[ohaha.ks.edu.tw] 作者:蓝色泡泡(panda@ks.edu.tw) (2002-03-18 06:02:00)

◎VI COMMANDS
       
       以下命令皆在vi命令模式下执行。
       为避免ex:符号与ex命令混淆 所有要输入的指令皆用蓝色表示
       不显示ex:(举例说明的英文缩写)
      
       :   <control+A>     表示先按住ctrl键再按A
          有些命令小写也可以用
    
    移动命令:
       <control+A>     往下移动到这个字下次一出现的地方。

       <control+B>     标向上移动一个萤幕。

       <control+D>     标往下移动数行(约12行)。

       <control+E>     将萤幕往上一行,但标位置不变。

       <control+F>     标往下移动一个萤幕。

           +         标往下移动到下一行第一个非空白字元。
     
       <control+U>   标往上移动数行(约12行)。

       <control+Y>   将萤幕往上动,但标位置不变.
                     CTRL+Y 每移动一次 Y就按一次
                     (当然您的标须位在至少能够向上动的位置)

           $         将标移动到该行尾.

           (         标往上移动到下一句子.

           )         标往下移动到下一句子.

           -         标移动到上一行第一个非空白字元.

           0(数字)   移动标到该行的第一个字元(包含空白).

           <         移动该行向左移动一个tab键距离,按第二次後开始动作.

           >         移动该行向右移动一个tab键距离,按第二次後开始动作.

           B         往上移动标到下一个字的开始.

           E         标往後移动到下一个字的最後一个字元.

           nG        移动到某行,n为行数,若没有指定则为档案的最後一行.

           H         移动标到档案第一行行首.

           L         将标移动到萤幕的最下一行.

           M         将标移动到萤幕的中间行.

           W         往下移动标到下一个字的开始.

           ^         移到该行第一个非空白字元.

           e         移动到该字的最後一字母.

           f<字元>   行中向後搜寻该字母并移动标到该位置.
                      移动到a字母的位置fa

           t<字元>   行中向後搜寻该字母并移动标到该字元前一个位置.

           {         往上移动到前一段落.

           }         往下移动到後一段落.

    档案命令:
    
       <control+G>     显示档案的资讯。
                       显示出目前档案是否更改,所在行的位置.
                       file_name: unmodified : line 1 of 380 [0%]

       <control+L>   重画萤幕。

       <control+R>   重画萤幕。
       
       <control+Z>   暂停编辑 回到shell,可用fg回到编辑画面

       <control+^>   切换到最近编辑的档案.
                     vi file_name file_name2 
                     用此命命可以在两个档案中切换.

           ZZ        将文件存档并离开vi
           
    编辑命令:
       
       输入:
           I         移动标道行首的第一个字元并开始接受输入.

           R         以取代模式进入输入模式.
                  
       :
           Y         该行到暂存区
       
       删除:
           D         从标目前位置道行尾的所有字元删除..

           S         将该行清除并进入输入模式.

           X         删除标之前的一个字元
       
       取代:
       !shell命令    !後接shell comd ,并以shell cmd 执行结果取代标该行.
                     !panda
                     用以下讯息取代原有行的内容
                     bash: panda: command not found

           r         按r後接着按某字元,以取代标所在的该字元.

           ~         切换标所在字元的大小写
       重:
           &         在该行重之前的规则表示式.
                     前提是需要之前有执行过规则表示式.
                     用panda取代a  :s/a/panda/
                     若之前没有任何表示式 则系统会显示如下讯息
                     No previous regular expression

           .         重上一个更改文件内容的vi命令.

           n         搜寻之前所搜寻过的字串
                     若先执行 /BSD
                     再执行   n     等同於执行 /BSD
                     若先前没有搜寻任何东西 会有如下讯息
                     No previous search pattern.

       复原:
           U         恢复状态到标起初接触此行的状态
           
           u         复原前一个动作产生的效果(也就是回复)

       其他:
           :         执行ex 命令

           J         将下一行与此行合.

           Q         离开vi模式并切换到ex模式.

原创粉丝点击