1. 程式人生 > >【Linux】中預設文字編輯器 vim 的入門與進階

【Linux】中預設文字編輯器 vim 的入門與進階

### Linux 基本操作 vim 篇 ---


#### vim 簡介 ---- vim 是 Linux 上最基本的文字編輯工具,其地位像是 Windows 自帶的記事本工具,還要少數的 Linux 系統自帶 leafpad 編輯器,leafpad 的操作介面更像是 Win 的記事本,可以使用滑鼠切換游標,自由刪除,並且點選左上角的檔案可以進行儲存;但是 vim 編輯器卻像是一個簡單的指令工具,其操作必須依靠指令來完成,但是如果不會使用 vim 的話,是無法完成很多操作的,甚至對大多數只集成了 vim 的系統來說,不會使用 vim ,甚至無法安裝 leafpad ,而在 Linux 系統中,剛裝完的系統(國產系統除外)一定要進行換源,這時候就要使用到一個編輯器工具,如果你的系統只有 vim,最好還是學習一下如何使用 vim;

#### vim 三種模式 ---- - 只讀模式:使用 vim 開啟檔案為 只讀模式,此時只可以檢視檔案內容,無法對檔案進行編輯; - 插入模式:即 編輯模式 ,此時可以對檔案進行編輯,字元的插入或刪除等操作; - 底行模式:類似於終端的命令列,此時可以輸入命令,選擇是儲存檔案 / 儲存並退出 / 不儲存退出 / 強制退出 等;

#### vim 基本命令 ---- 基本的編輯命令,學會後可以流暢操作 vim 編輯器; ---- - 在進入 vim 之前,建議使用:sudo su 命令進入超級管理員模式,否則一些系統級的檔案即使你編輯了,也無法進行儲存; - 開啟檔案:開啟控制終端,輸入 vim + 一個文字的名字,就可以開啟這個文字(開啟當前目錄下的檔案只需要輸入檔名,開啟其他目錄下的檔案需要輸入絕對地址);這個時候是“只讀”模式,無法對檔案進行編輯; - 編輯命令:進入檔案之後,點選`i`(insert 縮寫),進入編輯模式,這個時候可以自使用上下左右四個鍵控制游標,使用刪除鍵刪除,或輸入任意字元; - 底行模式:對檔案編輯好之後,點一下`Esc`鍵,進入底行模式,此時可以輸入命令選擇對檔案的操作,基本命令如下(注:以冒號開頭): | 指令 | 效果 | 備註 | | ------ | -------------- | ------------------------------------------------------------ | | :wq | 儲存 並 退出 | 儲存檔案並退出檔案,返回到命令終端介面; | | :q | 退出 | 不儲存,直接退出檔案,返回到命令終端介面; | | :q! | 強制退出 | 提示無法儲存的時候,加!可以強制退出檔案,此時的檔案快取在記憶體中,並不會存回磁碟中; | | :wq! | 強制儲存並退出 | 此時檔案會被強制儲存,並退出回到命令終端; |

#### vim 進階命令 ---- 進階指令,學會後操作更方便,相當於魔法加成; ---- - 游標控制 | 指令 | 效果 | 備註 | | ------- | --------------------- | -------------------------------- | | :num | 讓游標跳到第 Xnum行首 | 只會跳到行首 | | :nd | 刪除第 n 行 | d:delete | | :n , md | 從第 n 行刪到第 m 行 | m 不能超過最後一行,否則提示無效 | - 快速複製貼上 | 指令 | 效果 | 備註 | | ----- | ------------------------ | ------------------ | | :n,my | 複製第 n 行到 m 行的內容 | 按 p 貼上(Paste) | | :n,md | 剪下第 n 行到 m 行的內容 | 按 p 貼上(Paste) | - 文字編輯(效果類似於各類編輯器的“編輯”功能) | 指令 | 效果 | 備註 | | -------------------- | ------------------------------------ | ----------------------------------------- | | :%s#old#new#g | 全域性替換 | g:全域性 ;#不是代替空格用的,不可以刪除; | | :num s#old#new#g | 在第 num 行查詢old並將其替換成new | 相對於上一條命令,加了一個範圍:某一行; | | :n , m s#old#new#g | 在第 n 到 m 行查詢old並將其替換成new | 相對於上一條命令,擴大了範圍,多行;- | - 檔案操作 | 指令 | 效果 | 備註 | | ---------------- | ------------------------------------------ | ---------------------------- | | vsp xxx.c | 左右分屏開啟 xxx.c 檔案 | 分屏應該很常見了,可以理解吧 | | sp xxx.c | 上下分屏開啟 xxx.c 檔案 | | | :w new xxx.c | 將當前檔案另存為 xxx.c 檔案 | 可以使用絕對地址 | | :n ,mw new xxx.c | 將當前檔案的第 n 到 m 行另存為 xxx.c 檔案 | 使用時候注意不要少了 `w` | | :0r /etc/hosts | 將/etc/hosts檔案中的內容匯入到此檔案的開頭 | | | :$r /etc/hosts | 將/etc/hosts檔案中的內容匯入到此檔案的結尾 | | - 搜尋內容 | 指令 | 效果 | 備註 | | ------- | ------------------------------------------------------------ | -------------- | | /word | 在檔案中搜索`word`這個單詞 | | | n | 向下查詢(下一個) | | | N | 向上查詢(上一個) | | | /word\c | 忽略大小寫,在檔案中搜索`word`這個單詞 | | | :noh | 取消高亮 | 退出“查詢模式” |

#### 注意事項 --- - vim 可以開啟任意模式檔案,不一定非得是 `.c`檔案 - 開啟 / 另存為 的時候 最好加上絕對地址 - $ 符號一般指最後( 行 /