首页 技术 正文
技术 2022年11月12日
0 收藏 346 点赞 3,108 浏览 1897 个字

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行

  1. 編寫文件:
    在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
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,156
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,624
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,468
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,240
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,876
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,043