@
上一篇中已經預告,我們這篇主要說Linux中vi/vim 編輯器。它是我們使用Linux系統不可缺少的工具,學會了,你就可以在Linux世界裡暢通無阻,學廢了,常用操作你也會了,也是夠用了,O(∩_∩)O
vi是Linux系統下標準編輯器,就相當於Windows系統中的記事本一樣。功能不輸給最新的文字編輯器。vim可以看作是vi的升級版本,具有程式碼補全、編譯即錯誤跳轉等程式編輯能力,可以用多種顏色的方式來顯示一些特殊資訊。
下面我們演示一下,這麼建立一個xiezhr.txt檔案,並往xiezhr.txt 中新增內容
① 輸入如下命令進入vi/vim(vi/vim 檔名 就能夠進入 vi/vim 的普通模式了。注: vi/vim 後面一定要加檔名,不管該檔案存在與否)
vim xiezhr.txt
② 按下 【i】 進入輸入模式(也稱為編輯模式),開始編輯文字
③ 檔案編輯完後我們怎麼儲存退出呢? 這時候我們按下【Esc】鍵,發現介面上--INSERT--不見了,這是我們已經退出了輸入模式,這時我們再按下【:】即可進入底線命令模式。
④ 我們再輸入【wq】即可儲存xiezhr.txt檔案並退出
以上就是vi/vim基本操作,是不是很簡單哦(●'◡'●)
當然這只是vi/vim 最基本的操作。它的強大之處可能是你想都想不到的。如果你想了解更多vi/vim操作,可去查查相關資料。
vi/vim 共分為三種模式,分別是普通模式(Command mode),輸入模式(Insert mode)和底線命令列模式(Last line mode)
根據上面的例子,我們再結合下圖,你應該對vi/vim工作原理及三模式瞭如指掌了吧 O(∩_∩)O
三種模式下操作快捷鍵說明
一、一般模式
1、移動遊標
按鈕 | 操作說明 |
---|---|
【h、j、k、l】 | 分別控制遊標左、下、上、右移一格 |
【ctrl+b】 | 螢幕往"後"移動一頁 |
【n |
遊標向右移動n個字元 |
【Home】 | 移動到這一行的最前面字元處:0數位,但不能用數位小鍵盤上的數位 |
【End】 | 移動到這一行的最後面字元處:$,我測試好像不行 |
【w】 | 遊標跳到下個字的開頭 |
【e】 | 遊標跳到下個字的字尾 |
【H】 | 遊標移動到這個螢幕的最上方那一行的第一個字元 |
【M】 | 遊標移動到這個螢幕的中間那一行的第一個字元 |
【L】 | 遊標移動到這個螢幕的最下方那一行的第一個字元 |
【G】 | 移動到這個檔案的最後一行 |
【nG】 | 移動到這個檔案的第n行(可配合:set nu) |
【gg】 | 移動到這個檔案的第一行,相當於1G |
【n |
遊標向下移動n行 |
2、 查詢與替換
按鈕 | 操作手冊 |
---|---|
【/word】 | 向遊標向下尋找一個名稱為word的字串 |
【?word】 | 向遊標向上尋找一個名稱為word的字串 |
【n】 | 代表重複前一個查詢的動作 |
【N】 | 與n剛好相反,為【反向】進行行前一個查詢動作 |
【:n1,n2s/word1/word2/g】 | n1與n2為數位,在第n1與n2行之間查詢word1 這個字串,並將該字串替換為word2 |
【:1,$s/word1/word2/g】 | 從第一行到最後一行查詢word1字串,並將該字串替換為word2 |
【:1,$s/word1/word2/gc】 | 從第一行到最後一行查詢word1字串,並將該字串替換為word2 ,且在替換前提示使用者確認是否進行替換 |
3、 刪除、複製與貼上
按鍵 | 操作說明 |
---|---|
【x】 | 為向後刪除一個字元 (相當於【del】鍵 |
【X】 | 為向前刪除一個字元(相當於【backspace】鍵) |
【nx】 | 連續向後刪除n個字元 |
【dd】 | 刪除遊標所在行 |
【ndd】 | 刪除遊標所在的向下n行 |
【d1G】 | 刪除遊標所在行到第一行的所有資料 |
【dG】 | 刪除遊標所在到最後一行的所有資料 |
【d$】 | 刪除遊標所在處,到該行的最後一個字元 |
【d0】 | 刪除遊標所在處,到該行的最前一個字元 |
【yy】 | 複製遊標所在的那一行 |
【nyy】 | 複製遊標所在的向下n列 |
【y1G】 | 複製遊標所在行到第一行的所有資料 |
【yG】 | 複製遊標所在行到最後一行的所有資料 |
【y0】 | 複製遊標所在的那個字元到該行行首的所有資料 |
【y$】 | 複製遊標所在的那個字元到該行行尾的所有資料 |
【p】 | 將已複製的資料在遊標下一行貼上上 |
【P】 | 則為貼在遊標的上一行 |
【u】 | 恢復前一個操作 |
【Ctrl+r】 | 重做上一個操作 |
【.】 | 是重複前一個操作 |
二、一般模式、編輯模式(插入模式)切換
按鍵 | 操作說明 |
---|---|
【i】 | 從目前遊標所在處插入 |
【I】 | 在目前所在行的第一個非空格符處開始插入 |
【a】 | 從目前遊標所在的下一個字元處開始插入 |
【A】 | 從遊標所在行的最後一個字元處開始插入 |
【o】 | 在目前遊標所在的下一行處插入新的一行 |
【O】 | 為在目前遊標所在處的上一行插入新的一行 |
【r】 | 只會取代遊標所在的那一個字元一次 |
【R】 | 會一直取代遊標所在的文字,直到按下 ESC 為止; |
【Esc】 | 退出編輯模式(插入模式),回到一般模式 |
三、一般模式、命令列模式切換
按鍵 | 操作 |
---|---|
【:w】 | 儲存編輯的內容 |
【:w!】 | 強制寫入該檔案,但跟你對該檔案的許可權有關 |
【:q】 | 離開vi |
【:q!】 | 不想儲存修改強制離開 |
【:wq】 | 儲存後離開 |
【:x】 | 儲存後離開 |
【ZZ】 | 若檔案沒有更動,則不儲存離開,若檔案已經被更改過,則儲存後離開 |
【:w filename】 | 將編輯的資料儲存成另一個檔案(類似另存) |
【:r filename】 | 在編輯的資料中,讀入另一個檔案的資料。即將【filename】 這個檔案的內容加到遊標所在行後面。 |
【:n1,n2 w filename】 | 將n1到n2的內容儲存成filename這個檔案。 |
【:! command】 | 暫時離開vi 到命令列模式下執行command的顯示結果!例如 【:! ls /home】即可在 vi 當中察看/home底下以ls輸出的檔案資訊! |
【:set nu】 | 顯示行號 |
【:set nonu】 | 與 set nu 相反,為取消行 |
上面一下列舉了好多按鍵,你會說我怎麼記得住呢? 其實沒必要把所有的都記住了,常用的就那麼幾個。敲得多了自然就記住了,記不住得再來翻一翻這篇文章就好了