熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Vi 使用說明

2013-11-13 15:44:32  來源: Oracle 

  Vi 簡介
  Vi 是 Unix 世界裡極為普遍的全螢幕文書編輯器幾乎可以說任何一台 Unix 機器都會提供這套軟體Linux 當然也有它的 vi 其實是 elvis(版權問題)不過它們都差不多熟悉 DOS 下的文書處理後也許會感到 vi 並不好用Unix 上也已經發展出許多更新更好用的文書編輯器但是並不一定每一台 Unix 機器上都會安裝這些額外的軟體所以學習 vi 的基本操作還是有好處讓你在各個不同的機器上得心應手
  Vi 基本觀念
  Unix 提供一系列的 ex 編輯器包括 ex edit 和 vi 相對於全螢幕編輯器現在可能很難想像如何使用 ex edit 這種行列編輯器(有人用過 DOS 版以前所附的EDLIN 嗎?) Vi 的原意是 Visual它是一個立即反應的編輯程式也就是說可以立刻看到操作結果
  
  也由於 vi 是全螢幕編輯器所以它必須控制整個終端機螢幕哪裡該顯示些什麽而終端機的種類有許多種特性又不盡相同所以 vi 有必要知道現在所使用的是哪一種終端機這是藉由 TERM 這個環境變數來設定設定環境變數方面請查看所使用 shell的說明(除非執行 vi 的時候回應 unknow terminal type 否則可以不用設定
  只要簡單的執行 vi 就可以進入 vi 的編輯環境在實際操作之前先對它有個概略的了解會比較好Vi 有兩種模式輸入模式以及指令模式輸入模式即是用來輸入文字資料而指令模式則是用來下達一些編排文件存檔以及離開 vi 等等的操作指令當執行 vi 後會先進入指令模式此時輸入的任何字元都視為指令
  
  進入與離開
  要進入 vi 可以直接在系統提示字元下鍵入 vi <檔案名稱>vi 可以自動幫你載入所要編輯的檔案或是開啟一個新檔進入 vi 後螢幕左方會出現波浪符號凡是列首有該符號就代表此列目前是空的要離開 vi 可以在指令模式下鍵入 :q :wq 指令則是存檔後再離開(注意冒號)要切換到指令模式下則是用 [ESC] 鍵如果不曉得現在是處於什麽模式 可以多按幾次 [ESC]系統會發出哔哔聲以確定進入指令模式
  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 可以恢復被刪除的資料而 U 指令則可以恢復游標所在列的所有改變這與某些電腦上的 [Undo] 按鍵功能相同
  Vi 進階應用
  相信現在對於 vi 應該已經有相當的認識處理文字也不會有什麽麻煩才對如果有興趣善用 vi 的其它功能進一步簡化操作過程不妨繼續看下去
  移動游標
  由於許多編輯工作是藉由游標來定位所以 vi 提供許多移動游標的方式這個我們列幾張簡表來說明(這些當然是指令模式下的指令)
  
  ┌—————┬—————————————┬—————┐
  │指令 │說明 │功能鍵 │
  ├—————┼—————————————┼—————┤
  │ │移動到游標所在列的最前面 │[Home] │
  ├—————┼—————————————┼—————┤
  │$ │移動到游標所在列的最後面 │[End] │
  ├—————┼—————————————┼—————┤
  │[CTRL][d] │向下半頁 │ │
  ├—————┼—————————————┼—————┤
  │[CTRL][f] │向下一頁 │[PageDown]│
  ├—————┼—————————————┼—————┤
  │[CTRL][u] │向上半頁 │ │
  ├—————┼—————————————┼—————┤
  │[CTRL][b] │向上一頁 │[PageUp] │
  └—————┴—————————————┴—————┘
  ┌——┬—————————————————┐
  │指令│說明 │
  ├——┼—————————————————┤
  │H │移動到視窗的第一列 │
  ├——┼—————————————————┤
  │M │移動到視窗的中間列 │
  ├——┼—————————————————┤
  │L │移動到視窗的最後列 │
  ├——┼—————————————————┤
  │b │移動到下個字的第一個字母 │
  ├——┼—————————————————┤
  │w │移動到上個字的第一個字母 │
  ├——┼—————————————————┤
  │e │移動到下個字的最後一個字母 │
  ├——┼—————————————————┤
  │^ │移動到游標所在列的第一個非空白字元│
  └——┴—————————————————┘
  ┌——┬———————————————————┐
  │指令│說明 │
  ├——┼———————————————————┤
  │n │減號移動到上一列的第一個非空白字元 │
  │ │前面加上數字可以指定移動到以上 n 列 │
  ├——┼———————————————————┤
  │n+ │加號移動到下一列的第一個非空白字元 │
  │ │前面加上數字可以指定移動到以下 n 列 │
  ├——┼———————————————————┤
  │nG │直接用數字 n 加上大寫 G 移動到第 n 列 │
  └——┴———————————————————┘
  ┌————┬———————————————┐
  │指令 │說明 │
  ├————┼———————————————┤
  │fx │往右移動到 x 字元上 │
  │Fx │往左移動到 x 字元上 │
  ├————┼———————————————┤
  │tx │往右移動到 x 字元前 │
  │Tx │往左移動到 x 字元前 │
  ├————┼———————————————┤
  │; │配合 f&t 使用重復一次 │
  │ │配合 f&t 使用反方向重復一次 │
  ├————┼———————————————┤
  │/string │往右移動到有 string 的地方 │
  │?string │往左移動到有 string 的地方 │
  ├————┼———————————————┤
  │n │配合 /&? 使用重復一次 │
  │N │配合 /&? 使用反方向重復一次 │
  └————┴———————————————┘
  ┌————┬———————————————————┬——————————┐
  │指令 │說明 │備注 │
  ├————┼———————————————————┼——————————┤
  │n( │左括號移動到句子的最前面 │句子是以 │
  │ │前面加上數字可以指定往前移動 n 個句子 │! ? 三種符號來界定│
  │n) │右括號移動到下個句子的最前面 │ │
  │ │前面加上數字可以指定往後移動 n 個句子 │ │
  ├————┼———————————————————┼——————————┤
  │n{ │左括弧移動到段落的最
From:http://tw.wingwit.com/Article/program/Oracle/201311/17235.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.