• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Vi 編輯器使用說明

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    Vi是Unix世界里極為普遍的全螢幕文書編輯器,幾乎可以說任何一臺Unix機器都會提供這套軟體。 Linux 當然也有,它的vi其 實是elvis (版權問題),不過它們都差不多。熟悉DOS下的文書處理後,也許會感到vi并不好用;Unix上也已經發展出許多更... 1、Vi簡介 Vi
    Vi 是 Unix 世界里極為普遍的全螢幕文書編輯器,幾乎可以說任何一臺Unix 機器都會提供這套軟體。Linux 當然也有,它的 vi 其 實是 elvis
    (版權問題),不過它們都 差不多。熟悉 DOS 下的文書處理後,也許會感到 vi 并不好用;Unix 上也已經發展出 許多更...

    1、Vi 簡介 
     
    Vi 是 Unix 世界里極為普遍的全螢幕文書編輯器,幾乎可以說任何一臺
     Unix 機器都會提供這套軟體。Linux 當然也有,它的 vi 其 實是 elvis
    (版權問題),不過它們都 差不多。熟悉 DOS 下的文書處理後,也許會
    感到 vi 并不好用;Unix 上也已經發展出 許多更新、更好用的文書編輯
    器,但是并不一定每一臺 Unix 機器上都會安裝這些額外的軟體。所以,
    學習 vi 的基本操作還是有好處,讓你在各個不同的機器上得心應手。  
      
    2、Vi 基本觀念 
     
    Unix 提供一系列的 ex 編輯器,包括 ex, edit  ; ;和 vi 。相對於全螢幕編輯
    器,現在 可能很難想像如何使用 ex, edit 這種行列編輯器(有人用過
     DOS 3.3 版以前所附的 EDLIN 嗎?)。 Vi& amp; nbsp;的原意是 "Visual",它是一個
    立即反應的編輯程式,也就是說可 以立刻看到操作結果。 
     
    也由於 vi 是全螢幕編輯器,所以它必須控制整個終端機螢幕哪里該顯示
    些什麼。而終 端機的種類有許多種,特性又不盡相同,所以 vi 有必要知
    道現在所使用的是哪一種終 端機。這是藉由 TERM 這個環境變數來設定,
    設定環境變數方面請查看所使用 shell 的說明。(除非執行 vi 的時候回
    應 unknow terminal type ,否則可以不用設定。) 
     
    只要簡單的執行 vi 就可以進入 vi 的編輯環境。在實際操作之前先對它有
    個概略的了 解會比較好。Vi 有兩種模式,輸入模式以及指令模式。輸入
    模式即是用來輸入文字資 料,而指令模式則是用來下達一些編排文件、存
    檔、以及離開 vi 等等的操作指令。當 執行 vi 後,會先進入指令模 式,此
    時輸入的任何字元都視為指令。  
      
    3、進入與離開 
     
    要進入 vi 可以直接在系統提示字元下鍵入 vi <檔案名稱>,vi  可以自動
    幫你載入 所要編輯的檔案或是開啟一個新檔。進入 vi 後螢幕左方會出現
    波浪符號,凡是列首有 該符號就代表此列目前是空的。要離開 vi 可以在
    指令模式下鍵入 :q, :wq 指令則是 存檔後再離開(注意冒號)。要切換到
    指令模式下則是用 [ESC] 鍵,如果不曉得現在 是處於什麼模式, 可以多按
    幾次 [ESC],系統會發出嗶嗶聲以確定進入指令模式。  
      
    4、Vi 輸入模式 
     
    要如何輸入資料呢?有好幾個指令可以進入輸入模式: 
     
    新增 (append) 
    a 從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。 
    A 從游標所在列最後面的地方開始新增資料。 
     
    插入 (insert) 
    i 從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。 
    I 從游標所在列的第一個非空白字元前面開始插入資料。 
     
    開始 (open) 
    o 在游標所在列下新增一列并進入輸入模式。 
    O 在游標所在列上方新增一列并進入輸入模式。 
     
    也許文字敘述看起來有點繁雜,但是只要實際操作一下馬上可以了解這些
    操作方式。實 務很重要,尤其是電腦方面的東西隨時可以嘗試及驗證結
    果。極力建議實際去使用它而不要只是猛 K 文件,才有事半功倍的效用。
    (注:此段為廢話。) 
     
     
    5、Vi 基本編輯 
     
    配合一般鍵盤上的功能鍵,像是方向鍵、[Insert] 、[Delete] 等等,現在
    你應該已經 可以利用 vi 來處理文字資料了。當然 vi 還提供其他許 許多多
    能讓文字的處理更形 方便,有興趣的看倌請繼續。 
     
    在繼續下去之前先來點 BCC 吧。電腦有許多廠牌,不同的硬體及作業系統。
    PC 也不是 僅僅只有 IBM PC 及其相容品而已。事實上,包括鍵盤 ,終端機等
    等往往都有不同的規 格。這代表什麼? 
     
    在文書編輯軟體上會遇這樣的問題,某些電腦的鍵盤上沒有特定的幾個功能
    鍵!那麼不 就有某些功能不能用了?這個問題在 Unix 系統上也一樣,幾乎
    各大電腦廠商都有自己 的 Unix 系統,而 vi 的操作方法也會隨之 有點出入。
    我們固然可以用 PC 的鍵盤來說 明 vi 的操作,但是還是得提一下這 個問題。 
     
     
    刪除與修改 
     
    何謂編輯?在這里我們認為是文字的新增修改以及刪除,甚至包括文字區塊
    的搬移、復 制等等。這里先介紹 vi 的如何做刪除與修改。(注意:在 vi&am p;nb sp;的
    原始觀念里,輸入跟 編輯是兩碼子事。編輯是在指令模式下操作的,先利用
    指令移動游標來定位要進行編輯 的地方,然後才下指令做編輯。) 
     
    x   刪除游標所在字元。 
    dd  刪除游標所在的列。 
    r   修改游標所在字元,r 後接著要修正的字元。 
    R   進入取代狀態,新增資料會覆蓋原先資料,直到按 [ESC] 回到指令模式
      下為止。 
    s   刪除游標所在字元,并進入輸入模式。 
    S   刪除游標所在的列,并進入輸入模式。 
     
    其實呢,在 PC 上根本沒有這麼麻煩!輸入跟編輯都可以在輸入模式下完成。
    例如要刪 除字元,直接按 [Delete] 不就得了。而插入狀態與取代狀態可以
    直接用 [Insert] 切 換,犯不著用什麼指令模式的編輯指令。不過就如前面
    所提到的,這些指令幾乎是每臺 終端機都能用,而不是僅僅在 PC 上。 
     
    在指令模式下移動游標的基本指令是 h, j, k, l 。想來各位現在 也應該能猜
    到只要直 接用 PC 的方向鍵就可以了,而且無論在指令模式或輸入模式下都
    可以。多容易不是。 
     
    當然 PC 鍵盤也有不足之處。有個很好用的指令 u 可以恢復被刪除的資料,而
     U 指令 則可以恢復游標所在列的所有改變。這與某些電腦上的 [Undo] 按鍵功
    能相同。 
     
     
    6、Vi 進階應用 
     
    相信現在對於 vi 應該已經有相當的認識。處理文字也不會有什麼麻煩才對。
    如果有興 趣善用 vi 的其它功能進一步簡化操作過程,不妨繼續看下去。 
     
     
    移動游標 
     
    由於許多編輯工作是藉由游標來定位,所以 vi 提供許多移動游標的方式,這
    個我們列 幾張簡表來說明(這些當然是指令模式下的指令): 
     
    ┌—————┬—————————————┬—————┐ 
    │指令      │說明                        │功能鍵&a mp;n bsp;   │ 
    ├—————┼—————————————┼—————┤ 
    │0         │移動到 游標所在列的最前面  │[Home]    │ 
    ├—————┼—————————————┼—————┤ 
    │$         │移動到 游標所在列的最後面  │[End]     │ 
    ├—————┼—————————————┼—————┤ 
    │[CTRL][d]  │向下半頁        & amp; nbsp;         │            │ 
    ├—————┼—————————————┼—————┤ 
    │[CTRL][f]  │向下一頁        & amp; nbsp;         │ [PageDown]│ 
    ├—————┼—————————————┼—————┤ 
    │[CTRL]
     │向上半頁        & amp; nbsp;         │            │ 
    ├—————┼—————————————┼—————┤ 
    │[CTRL]
     │向上一頁        & amp; nbsp;         │ [PageUp]  │ 
    └—————┴—————————————┴—————┘ 
    ┌——┬—————————————————┐ 
    │指令│說明                                 │ 
    ├——┼—————————————————┤ 
    │H   │移動到視窗的第一列                  │ 
    ├——┼—————————————————┤ 
    │M   │移動到視窗的中間列                  │ 
    ├——┼—————————————————┤ 
    │L   │移動到視窗的最後列                  │ 
    ├——┼—————————————————┤ 
    │b   │移動到下個字的第一個字母    &am p;nb sp;     │ 
    ├——┼—————————————————┤ 
    │w   │移動到上個字的第一個字母    &am p;nb sp;     │ 
    ├——┼—————————————————┤ 
    │e   │移動到下個字的最後一個字母    &a mp;n bsp;   │ 
    ├——┼—————————————————┤ 
    │^   │移動到游標所在列的第一個非空白字元│ 
    └——┴—————————————————┘ 
    ┌——┬———————————————————┐ 
    │指令│說明                                     │ 
    ├——┼———————————————————┤ 
    │n-  │減號移動到上一列的第一個非空白字元    │&a mp;n bsp;
    │    │前面加上數字可以指定移動到以上 n 列  ; ;  │ 
    ├——┼———————————————————┤ 
    │n+  │加號移動到下一列的第一個非空白字元    │&a mp;n bsp;
    │    │前面加上數字可以指定移動到以下 n 列  ; ;  │ 
    ├——┼———————————————————┤ 
    │nG  │直接用數字 n 加上大寫 G 移動到第  ; ;n 列 │ 
    └——┴———————————————————┘ 
    ┌————┬———————————————┐ 
    │指令    │說明                             │ 
    ├————┼———————————————┤ 
    │fx      │往右移動到 x 字元 上           ; ; │ 
    │Fx      │往左移動到 x 字元 上           ; ; │ 
    ├————┼———————————————┤ 
    │tx      │往右移動到 x 字元 前           ; ; │ 
    │Tx      │往左移動到 x 字元 前           ; ; │ 
    ├————┼———————————————┤ 
    │;       │配合 f&t  使用,重復一次       │& ;nbs p;
    │,       │配合 f&t  使用,反方向重復一次 │ 
    ├————┼———————————————┤ 
    │/string │往右移動到有 string 的地方     │ 
    │?string │往左移動到有 string 的地方     │ 
    ├————┼———————————————┤ 
    │n       │配合 /&?  使用,重復一次       │& ;nbs p;
    │N       │配合 /&?  使用,反方向重復一次 │ 
    └————┴———————————————┘ 
    ┌————┬———————————————————┬——————————┐ 
    │指令    │說明                                     │備注&am p;nb sp;         &am p;nb sp;     │ 
    ├————┼———————————————————┼——————————┤ 
    │n(      │左括號移動到句子的最前面 &a mp;n bsp;         &a mp;n bsp;  │句子是以      &am p;nb sp;     │ 
    │        │前面加上數字可以指定 往前移動 n 個句子 │! . ? 三種符號來界定│& ;nbs p;
    │n)      │右括號移動到下個句子的最前面           │  ; ;           ; ;         │& ;nbs p;
    │        │前面加上數字可以指定 往後移動 n 個句子 │     &am p;nb sp;         &am p;nb sp;    │ 
    ├————┼———————————————————┼——————————┤ 
    │n{      │左括弧移動到段落的最前面 &a mp;n bsp;         &a mp;n bsp;  │段落是以      &am p;nb sp;     │ 
    │        │前面加上數字可以指定 往前移動 n 個段落 │段落間的空白列界定  │ 
    │n}      │右括弧移動到下個段落的最前面           │  ; ;           ; ;         │& ;nbs p;
    │        │前面加上數字可以指定 往後移動 n 個段落 │     &am p;nb sp;         &am p;nb sp;    │ 
    └————┴———————————————————┴——————————┘ 
     
    不要嘗試背誦這些指令,否則後果自行負責。它們看起來又多又雜亂,事實
    上這是文字 敘述本身的障礙。再強調一次,實際去使用它只要幾次就可以不
    經大腦直接下達這些奇 奇怪怪的指令,遠比死記活背搞得模模糊糊強多了。
    (注:若真的不經大腦而誤刪資料 
    與我無關。另,此段為廢話。) 
     
     
    7、進階編輯指令 
     
    這些編輯指令非常有彈性,基本上可以說是由指令與范圍所構成。例如 dw 是
    由刪除指 令 d 與范圍 w 所組成,代表刪除一個字 d(e lete) w(ord) 。 
     
    指令列表如下: 
     
    d   刪除(delete) 
    y   復制(yank) 
    p   放置(put) 
    c   修改(change) 
     
    范圍可以是下列幾個: 
     
    e   游標所在位置到該字的最後一個字母 
    w   游標所在位置到下個字的第一個字母 
    b   游標所在位置到上個字的第一個字母 
    $   游標所在位置到該列的最後一個字母 
    0   游標所在位置到該列的第一個字母 
    )   游標所在位置到下個句子的第一個字母 
    (   游標所在位置到該句子的第一個字母 
    }   游標所在位置到該段落的最後一個字母 
    {   游標所在位置到該段落的第一個字母 
     
    說實在的,組合這些指令來編輯文件有一點點藝術氣息。不管怎麼樣,它們提
    供更多編 輯文字的能力。值得注意的一點是刪除與復制都會將指定范圍的內容
    放到暫存區里,然 後就可以用指令 p 貼到其它地方去,這是 vi 用來 處理區段
    拷貝與搬移的辦法。 
     
    某些 vi 版本,例如 Linux 所用的 elvis 可以 大幅簡化這一坨指令。如果稍微觀
    察一 下這些編輯指令就會發現問題其實是定范圍的方式有點雜,實際上只有四
    個指令罷了。 指令 v 非常好用,只要按下 v 鍵,游標所在的位置就會 反白,然
    後就可以移動游標來 
    設定范圍,接著再直接下指令進行編輯即可。 
     
    對於整列操作, vi 另外提供了更方便的編輯指令。前面曾經提到過刪除整列文
    字的指 令 dd 就是其中一個;clearcase/" target="_blank" >cc 可以修改整列文字;而 yy&am p;nb sp;則是復制整列文字;
    指令 D 則可 
    以刪除游標到該列結束為止所有的文字。 
     
     
    8、檔案指令 
     
    檔案指令多以 : 開頭,跟編輯指令有點區別。例如前面提到結束編輯的指令就
    是 :q。 

    現在就簡單說明一下作為本篇故事的結尾: 
     
    ∶q  結束編輯(quit) 
        如果不想存檔而要放棄編輯過的檔案則用 :q! 強制離 開。 
    ∶w  存檔(write) 
        其後可加所要存檔的檔名。 
        可以將檔案指令合在一起,例如 :wq 即存檔後離開。  
    zz  功能與 :wq 相同。 
     
    另外值得一提的是 vi 的部份存檔功能??梢杂?nbsp;:n,mw filename&a mp;n bsp;將第 n 列到第 m
     列 的文字存放的所指定的 filename 里去哩。時代在變,世界在變,&am p;nb sp;vi 也在變,
    不過大 致上就這樣。好了,但愿從此以後王子跟公主過著幸??鞓返纳?。  

    摘自【UNIX論壇

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>