# **Vim基礎** ## ****1.安裝**** 在Linux系統中本身並不自帶vim,需要自己手動下載。 1.進入kali後開啟終端機 2.在終端機中輸入`sudo apt install vim -y`進行安裝 ![螢幕擷取畫面 2024-01-07 151909](https://hackmd.io/_uploads/BkNz20DOp.png) ## ****2.操作流程(開檔->寫入->存檔->關閉)**** ### **開檔** 在終端機上輸入`vim <檔案名稱>` ![螢幕擷取畫面 2024-01-07 160323](https://hackmd.io/_uploads/B1xUBkud6.png) ### **寫入** 剛進入vim時,是處於普通模式(在此模式下無法輸入),需要按`i`挑轉到編輯模式才可以開始書寫 ![螢幕擷取畫面 2024-01-07 160352](https://hackmd.io/_uploads/SypiBJu_T.png) ### **存檔** 編輯完後按ESC離開編輯模式跳回開檔時的普通模式,然後直接輸入`:w`就會直接進行存檔 ![螢幕擷取畫面 2024-01-07 160517](https://hackmd.io/_uploads/BJqZUJdOa.png) ### **關閉** 在編輯完後,在普通模式下直接輸入 `:q` vim就會結束了,並跳回開檔時終端機的畫面 ![螢幕擷取畫面 2024-01-07 160540](https://hackmd.io/_uploads/HJYT8J_d6.png) ## **3.Vim指令** ### **編輯模式轉換** ``` - i : 在游標位置進入編輯模式 - I : 在游標行的第一個非空白字元進入編輯模式 - o : 向下新增一行,並進入編輯模式 - O : 向上新增一行,並進入編輯模式 - [ESC] : 取消指令或退出編輯模式 ``` ### **游標移動** ``` - gg : 移到第一行 - G : 移到最後一行 - <行數>G : 移動到第n行 - 0 : 移動到該行最前面 - $ : 移動到該行最後面 - <字數>[Space] : 向右移動n個字元 - <行數>[Enter] : 向下移動 n 行 ``` ### **標記與其相關操作** ``` - v : 開始字串標記 - V : 開始一行一行標記 - d : 刪除標記的內容 - y : 複製標記的內容 ``` ### **複製** ``` - yy : 複製游標行 - yG : 複製游標行到最後一行 - y1G : 複製游標行到第一行 - y0 : 複製游標處到第一個字元 ``` ### **貼上** ``` - p : 在下一行貼上複製或刪除的內容 - P : 在上一行貼上複製或刪除的內容 ``` ### **刪除** ``` - dd : 刪除游標行 - dG : 刪除游標行到最後一行 - d1G : 刪除游標行到第一行 - d0 : 刪除游標處到第一個字元 ``` ### **字串搜尋** ``` - /<字串> : 向下搜尋字串 - ?<字串> : 向上搜尋字串 - /\c<字串> : 向下搜尋字串,不分大小寫 - ?\c<字串> : 向上搜尋字串,不分大小寫 - n : 繼續下一個搜尋結果 - N : 繼續上一個搜尋結果 - :<起始行>,<中止行>s/<原先字串>/<取代字串> : 從第n行到第n行將<原先字串>替換成<取代字串> ``` ### **檔案操作** ``` - :w : 存檔 (加 ! 表示強制存檔) - :w <檔案名稱> : 另存新檔 - :wq : 存檔並退出vim - :e <檔案名稱> : 編輯其它檔案 - :r <檔案名稱> : 讀入檔案內容,並加到游標行的後面 - :n : 切換到下一個開啟的檔案 - :N : 切換到上一個開啟的檔案 - :set nu : 顯示行號 - :set nonu : 取消行號 - :files : 列出所有開啟的檔案 ``` ### **分割畫面** ``` - :new : 新增水平視窗 - :new <檔案名稱> : 新增水平視窗,並在新增的視窗載入檔案 - :vnew : 新增垂直視窗 - :vnew <檔案名稱> : 新增垂直視窗,並在新增的視窗載入檔案 - [Ctrl] + W 鬆開後再按 [方向鍵] : 切換視窗 - :only : 僅保留目前的視窗 ``` ### **其他** ``` - u : 還原 - . : 重覆上一個指令 - !<指令> : 執行Linux指令,並顯示執行結果 - :q : 退出vim(加 ! 表示強制退出) ```