快速上手Linux核心命令(六):Linux的文字編輯器vi和vim

2023-04-26 15:01:08

@

前言

上一篇中已經預告,我們這篇主要說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 工作原理及三種模式

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 相反,為取消行

命令列圖解

上面一下列舉了好多按鍵,你會說我怎麼記得住呢? 其實沒必要把所有的都記住了,常用的就那麼幾個。敲得多了自然就記住了,記不住得再來翻一翻這篇文章就好了