zoukankan      html  css  js  c++  java
  • vi 常用命令使用說明

    vi是一種文字模式全螢幕文字編輯軟體(Text Editor)。對初學者來說,vi是個很難用的工具,一般需要2個星期的時間才能得心應手。之所以介紹vi,其理由如下:

    1. vi是Unix上的標準文字編輯軟體,不管哪個版本的Unix系統都會提供。想靠開發Unix的軟體混飯吃,必須熟練vi。
    2. vi難用的原因之一,是只有文字模式,不能使用滑鼠。但也正因為如此,熟練者不用移動手去操作滑鼠,寫起程式來特別快.
    3. vi難用的原因之二,是同一個畫面分成三種操作模式,每種模式又可下達複雜指令,初學者常會搞混。但vi所提供的複雜指令,對寫程式特別好用,一經試用便覺威力無窮。
      另一個跟vi很像的軟體叫vim,算是vi的加強版,vi有的功能vim都有,還可以使用游標鍵。此處只介紹vi。
      vi在操作上分成下面三種模式,你若搞不清楚現在在哪種模式,只用按鍵盤左上角的ESC鍵,就可以跳到Command Mode
    4. Command mode( c-mode):
      您一進入 VI 就是處於 c-mode,只能下按鍵指令,不能輸入文字。
      這些指令可能是游標移動的指令,也可能是編輯指令或尋找替換指令。
    5. Input mode(i-mode):
      按 i 就會進入 i-mode,此時才可以鍵入文字,寫您的文章,按 Esc 又會回到 c-mode。
    6. Ed mode(command-line mode,e-mode):
      按冒號:(別忘了 Shift 鍵)就會進入 e-mode,左下角會有一個冒號:出現,可下 ed 指令。ed是Unix裡另一種非常古老的行模式Text Editor。所謂行模式,是一次只能觀看編輯一行文字,之所以會有這種模式,是因為遠古時代終端機的游標只能往下走(就像DOS視窗!),所以編輯軟體就只好這樣設計了。vi是由ed改良來的,因此保有ed的指令。
      也是按 Esc 回 c-mode。反正正常狀態都是處於 c-mode,這樣才不會把您辛苦打字的文章給隨便搞亂掉。
    7. 開檔:
      vi test.txt
      或進入 vi 後,使用冒號命令 :e test.txt,就可以編輯 test.txt 這個檔。
      如果 test.txt 不存在的話,就會開一個以 test.txt 為名的新檔案。

    5.游標移動:
    c-mode之下:h向左,j向下,k向上,l向右,Ctrl-F下一頁,Ctrl-B上一頁,Ctrl-G顯示檔案的狀態,$到行尾,^到行頭
    e-mode之下:輸入數字n就會移到第n行
    6. 編寫文件:
    在c-mode底下可用的命令:
    u: undo上一個命令
    o: 在此行的後面新增一行
    O: 在此行的前面新增一行
    i: 在游標的前一個位置插入字元
    I: 在此行的開頭插入字元
    a: 在游標的後一個位置插入字元
    A: 在此行的最後面加入字元
    r: 更改游標所在的字元
    R: 覆蓋游標後的字元(一直打字就一直蓋掉,直到按ESC)
    cl: 改掉一個字元
    cw: 把游標所在的一整個字改掉(此字最後一個字母會變成$, 直到按ESC前的所有輸入都會用來改掉這一個字)
    cc: 改掉游標所在的一整行
    x: 刪除一個字元
    dw: 刪除一整個字
    dd: 刪除一整行
    D: 刪除到行尾
    yy: 複製一整行
    yw: 複製一整個字
    Y: 複製一整行
    p: 貼在游標後(下)
    P: 貼在游標前(上)
    .: 重複上一個編輯命令
    /: 向下搜尋(會在螢幕左下角出現/符號,只要輸入要找的字然後Enter即可)
    ?: 向上搜尋
    n: 搜尋下一個
    N: 搜尋上一個
    以上命令除uoOD以外,前面都可以加上數字,表示此命令執行的次數,如5dd表示刪除五行,5yw複製五個字
    7.e-mode下面的命令:
    如果您寫好您的文件,就可以按Esc回到 c-mode,然後按:到e-mode,在e-mode底下的命令為
    w: 存檔
    w 檔名: 另存到檔名
    q: 離開vi
    wq: 存檔然後離開
    q!: 強迫離開vi
    w!: 強迫存檔
    x: 存檔後離開, 但若檔案沒有修改,則不會存檔
    !gcc test.c: !可用來呼叫shell執行命令, 此例中呼叫gcc編譯test.c
    shell: 呼叫shell(回到命令列), 在shell中打exit則回到vi
    r 檔名: 將檔名的內容讀到游標所在的行後
    1,$s/abc/def/g: 由第一行到最後一行將所有的abc取代成def,若最一個/g不打, 則只取代每行的第一個
    1,10s/abc/def/g:由第一行到第十行將所有的abc取代成def
     
    基本Unix操作指令df 顯示系統可使用空間
    ls 顯示資料檔案, ls -l可顯示更多的資訊
    cp 複製檔案 cp file1 file2
    mv 更改檔案名稱 mv file1 file2
    rm 刪除檔案名稱 rm file1
    passwd 更改password
    mkdir 建立目錄 mkdir 目錄名稱
    rmdir 刪除目錄 rmdir 目錄名稱
    man 找出相關指令的說明,類似help的功能 man finger

  • 相关阅读:
    sql server 错误9003:LSN无效(日志扫描号无效),对数据库的修复.
    用C#调用C++DLL时的字符串指针参数传递问题
    sql server 2005中的Service broker小示例(未完善)
    水晶报表钻取数据,在明细层导的时候,报表会从新加载,并显示主报表
    [转]gridview获取当前行索引的方法
    验证视图状态 MAC 失败的解决办法
    SQL SERVER 2005中对存储过程进行签名(转)
    MSChart图表控件的一些使用
    Repository模式
    职能式管理和流程式管理
  • 原文地址:https://www.cnblogs.com/jerrychen/p/4724970.html
Copyright © 2011-2022 走看看