VI前傳之--EX行編輯器學習

      原本準備寫一篇VI的學習筆記,看了一半發現得先寫一篇關於EX行編輯器的學習筆記,vi是更底層的ex行編輯器的可視模式,不少ex的命令在vi中也很好用編輯器

 

      ex的命令行以:開始,而後接各類命令,ex的命令行中包含了行地址以及命令,| 能夠在一行中分割多個命令學習

      p 表明打印,例如:2p 表示打印第二行,其實p也能夠省略,多行顯示在兩個行號之間用逗號分隔開便可。沒有行號的命令只會對當前行起做用,在ex編輯器中輸入:vi便可進入vi編輯器,大寫Q可退出ex編輯器。spa

      一些常見的操做在vi中有更方便的命令,當須要一次更改多行時,ex命令更有用,d 表示刪除一行,m 表示移動一行,t表示複製一行。命令行

      每個ex編輯命令都要知道要操做的行號,移動和複製還須要目的地,能夠明確指定行號,也能夠用符號指定相對於當前的行號,或者標示某些行的搜索模式做爲地址。
例如:6,9d 刪除6-9行
       :6,9m15 將6-9行移動打15行以後
       :set nu 可讓文件內容顯示行號
       :5,10# 以#結尾標示只顯示5-10行的行號。
       := 顯示文件總行數

    也能夠用符號表示行地址:
       . 表示當前行       :.,10m$ 將當前行到20行移動到文件末尾
       $ 文件最後一行     :5,$d 從第五行刪除至文件末尾
       % 文件的每一行

      +/- 放到行號前面時表示在行號上加上或者減去後面的數值

   用搜索模式匹配行:
       :/xxx/d  刪除下一個包含xxx的行
       :/xxx/,/yyy/d 刪除從第一個包含xxx到第一個包含yyy的行

    全局搜索:g
    全局搜索是搜索並顯示全部包含模式的行
      :g/xxx/p  搜索全文中的xxx並打印出來
      :5,10g/yyy/p 搜索5-10行的yyy並打印出來
      :w 緩衝區內容寫入文件中,不離開文件
      :q 離開文件,緩衝區內容不寫入文件
      :wq 緩衝區內容寫入文件並離開文件
      :x 寫入文件並離開(文件被修改過纔會寫入)

     :w newfile 將編輯過的文件另存爲爲newfile
     :x,yw newfile 另存爲x-y行的內容爲newfile

    在已經打開的文件中讀入其餘文件:
      :xr newfile 把newfile的內容插入x行的下面,沒有x的話就是光標的下一行

   在一個文件中打開另外一個文件:
      :e newfile 在打開另外一個文件前先必須保存當前文件
      % 表示當前文件 #表示上一個切換來的文件 這樣能夠快速切換


   全局替換,模式支持正則
      :g/xxx/s/yyy/zzz/g    匹配包含xxx的行,把其中的yyy替換成zzz 

      :%/xxx/s/yyy/zzz/g     同上it

    因爲之前接觸正則,因此後半部分寫的不是很詳細。file

相關文章
相關標籤/搜索