分享

freebsd下vi用法

 Ralf_Jones 2007-07-02
http://dslab.ee./~class/Mickey/editor.htm#vi

vi:

vi有三種狀態,分別是命令模式(Command mode)、插入模式(Insert mode)、和底線模式(Last line)。各模式的功能區分如下:
  1. Command mode:此模式在於控制游標移動、刪除字元或搬移某個區塊。
  2. Insert mode:只有在此模式下,才可以輸入文字。
  3. Last line mode:此模式在於儲存檔案、離開vi、找尋字串、列出行號和求助等等。
你可以鍵入vi  <filename>vi來進入vi編輯器。不同的是vi  <filename>會以filename做為文件的預設檔名。如果filename存在時,則直接編輯此檔。而直接鍵入vi時則不會預設文件檔的檔名,也不會開啟已存在的檔案。當你進入vi以後,會出現這種畫面。一開始進入vi時是在Command mode下。你可以從Command mode轉為Insert mode,或從Command mode轉為Last line mode。注意,要開始輸入文字一定要進入Insert mode。以下說明如何在各種模式中轉換。

1.Command mode -> Insert mode:在Command mode下按‘i‘、‘a‘或‘o‘都可以進入Insert mode,並且可以開始輸入字元資料。這三種輸入文字的方式不太一樣:

  1. ‘i‘:插入,從目前游標所在之處插入所輸入之文字。
  2. ‘a‘:增加,從目前游標所在的下一個字開始輸入文字。
  3. ‘o‘:插入新的一行,並從行首開始輸入文字。
2.Insert mode -> Command mode:只要在Insert mode下按[ESC]即可回Command mode。

3.Command mode -> Last line mode:當在Command mode下按‘:‘、‘/‘或‘?‘都可進入Last line mode。這時你所鍵入的指令都會出現在最下面一行,如此圖的最下面一行:w  test.txt。這三種進入方式分別代表三種功能:

  1. ‘:‘:按‘:‘後,你可以接著鍵一些特殊的指令如存檔、離開...等等。
  2. ‘/‘:鍵入‘/‘以後,你可以輸入你所要找尋的字串。vi會從文件開頭往上往下找尋符合的字串
  3. ‘?‘:鍵入‘?‘以後,你可以輸入你所要找尋的字串。vi會從文件尾由下往上找尋符合的字串
前面我們提到過,當你啟動vi以後,會在Command mode下。如果你要鍵入文字時,你必須轉到Insert mode。這時若你又想刪除文字,你會發現按倒退鍵居然沒有作用。原來這是vi和pe2不同的地方:vi必須轉換到Command mode下刪除文字。等你文件打完想存檔的時候,你又會發現在Command mode下居然沒有存檔的指令。原來存檔的指令是在Last line mode下。所以底下我們將介紹Command mode和Last line mode下幾個比較常用的功能:

Command mode:
1、移動游標:

  • 除了上、下、左、右鍵可以移動游標外,小寫英文字母h、j、k、l也可以用來移動游標。h、j、k、l分別代表左、下、上、右。
  • 按[ctrl + b]:螢幕往後移動一頁。
  • 按[ctrl + f]:螢幕往前移動一頁。
  • 按[ctrl + u]:螢幕往後移動半頁。
  • 按[ctrl + d]:螢幕往前移動半頁。
  • 按‘G‘:移動到文章的最後一行。
  • 按‘w‘:游標移到下個word的開頭。
  • 按‘e‘:游標移到下個word的字尾。
  • 按‘b‘:游標回到上個word的開頭。
  • 按‘0‘:游標移動到所在行的開頭
  • 按‘$‘:游標移到所在行的最後一個字元。
  • 按‘^‘:移到該行第一個非空白字元。
  • 按#|:移到該行的第#個字元,#為一個數字。如5|表示移動游標到第五個字元。
2、刪除文字:
  • x:每按一次就刪除游標所在位置的後面一個字元。
  • #x:刪除游標所在位置的後面#個字元,如6x。
  • X:每按一次就刪除游標所在位置的前面一個字元。
  • #X:刪除游標所在位置的前面#個字元,如20X。
  • dd:刪除一整行,此行位於游標所在位置。
  • #dd:往下刪除#行文字。
3、複製
  • yw:將游標所在之處到字尾的字元複製到緩衝區中。
  • yy:複製游標所在之行。
  • #yy:拷貝目前游標往下數#行的文字。
  • p:將緩衝區內的字元貼到游標所在位置。
4、取代
  • r:取代游標所在處之字元。
  • R:取代字元直到按<ESC>為止。
5、復原上一個指令
  • u:若你不小心操作錯誤,可以按u來回復資料。
6、更改
  • cw:更改游標所在處的字到字尾$處。
  • c#w:如c3w代表更改三個字。
7、跳至指定之行
  • [ctrl+g]:列出游標所在之行的行號。
  • #G:跳至第#行。
 Last line mode:
進入Last line mode之前,一定要先進入Command mode才行。然後按‘:‘、‘/‘、‘?‘都可以進入Last line mode。前面已經講過按‘/‘和‘?‘都是在做搜尋字串之用,所以我們現在只介紹按‘:‘後所能輸入的功能。記得輸入這些命令之前一定要在Command mode下按‘:‘。

1、列出行號

  • set nu:鍵入這個命令以後會在文章的每一行前面列出行號。
2、跳到文章的某一行
  • #:井號代表一個數字。比如你輸入15並按Enter以後,游標就會跳到第15行。
3、存檔
  • w:若你已經有預設文件檔的檔名,則下這個指令可以將你編輯過的檔案存起來。
  • w  filename:下這個指令可以把你編輯過的文件存在<filename>這個檔案之中。
  • #,#  w  filename:#是指數字,如20,30  w  test.txt。這個意思是說把20行到30行的資料存到test.txt檔案中。
4、離開
  • q:離開vi
  • q!:強制離開vi。有時候按q不能離開vi的話就可以鍵入這個指令強制離開。
  • wq:存檔並離開。
5、求助
  • help:vi的指令真的是又多又繁雜,所以要背住所有的指令簡直是不可能的事。所以如果你想查詢某個指令的功能時,鍵入help就可以達到這個功能。這是鍵入help以後所出現的畫面。請看下面那幾行。第一行是說如果你要查詢vi的命令,請鍵入:viusage。所以你只好再乖乖鍵入一次指令,它就會出現vi命令的列表了。第二行說明如果要看ex命令的話,請鍵入:exusage。
joe:
joe是一個比較類似pe2的編輯器,所以一般的使用者只要稍微學習一下就很容易上手。不過第一次使用joe的使用者通常在進入joe以後就不知道如何操作joe。請看這個畫面。這是執行joe以後所出現的畫面。再看它的最上面一行的最右邊那一部分,它顯示Ctrl-K H for help。原來只要按Ctrl-K H就可以看到命令列表了。不過Ctrl-K H要如何按呢?Ctrl-K H的按法是同時按Ctrl和K這兩個鍵,然後再按H這個鍵。按Ctrl-K以後左上角會出現^K的字樣,如圖。這時候再按H的話這可以顯示命令列表了,如圖。看一下第三行最後面寫著:^KX    save,這個意是說按^KX就可以存檔。可是^KX要怎麼按?原來^KX的按法和前面Ctrl-K H的按法是一樣的:先同時按Ctrl和K,然後再按X。其實所有joe命令的按法都是這種形式。

        除了joe的命令之外,一般的使用者應該對joe的編輯沒什麼問題才對。在joe底下你可以輸入文字、刪除文字、插入文字,不必像vi一樣輸入文字時需要轉換到Insert mode、刪除文字時要轉換到Command mode、存檔時又要轉換到Last line mode。joe幾乎所有的文字輸入方式都和pe2一樣,真的是相當的方便。

        如果你看不懂joe的命令列表時,那你一定要背下列這幾個常用的命令:

  1. ^KX save:存檔並離開joe
  2. ^KD save:存檔,但不離開joe
  3. ^C  abort:不存檔離開joe
  4. ^KF find text:在文件中找尋字串
  5. ^L  find next:若你先前已用^KF找尋過字串,則你可以用這個指令繼續往下找尋同一個字串

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多