vim編輯器

七落安歌發表於2024-03-14

vim編輯器

vi/vim編輯器

  • vi是一款很多unix及其延伸系統內建的文字編輯器,具有強大的文字編輯能力。

  • vim是從vi發展出來的一個文字編輯器,可以理解為vi編輯器的增強版。vim中程式碼補完、編譯及錯誤跳轉等方便程式設計的功能特別豐富。

  • vi/vim編輯器的核心設計思想:讓程式設計師的手指始終保持在鍵盤的核心區域, 就能完成所有的編輯操作。

  • 學習使用vi/vim編輯器最大挑戰:萬物皆命令

image-20240310052158161

vi/vim 3種工作模式

  • 命令模式(Command mode)

    • 命令模式下,所敲的按鍵編輯器都理解為命令,以命令驅動執行不同的功能。
    • 此模型下,不能自由進行文字編輯。
  • 輸入模式(Insert mode)

    • 也就是所謂的編輯模式、插入模式。
    • 此模式下,可以對檔案內容進行自由編輯。
  • 底線命令模式(Last line mode)

    • 以:開始,通常用於檔案的儲存、退出。

image-20240310052409341

命令模式<-->輸入模式

  • i 進入到編輯輸入模式後,定位到當前游標前面

  • o 進入到編輯輸入模式後,在當前行的後面新增一行空行(當前行的下一行)

  • 輸入模式下按ESC退回到命令模式

命令模式<-->底線命令模式

  • 在命令模式下,輸入:進入底線命令模式。

  • 常用的底線命令有:

    • :q 退出
    • :w儲存
    • :wq 儲存退出
    • :wq! 強制儲存退出

提示:在命令模式下按下shift + zz,可以實現快速的儲存退出

開啟與新建檔案

vim /path/file

  • 如果開啟的檔案不存在,此時就是新建檔案,編輯器左下角會提示new file

  • 如果檔案已經存在,此時就開啟這個檔案,進入命令模式

開啟時異常處理

  • 原因:編輯時非正常退出,資料沒有儲存,vim編輯器把未儲存內容寫入一個隱藏的swp檔案

  • 現象:下次開啟時,提示使用者如何處理上次未儲存的內容。

  • 解決:

    • 可以根據提示進行開啟、編輯、恢復、刪除、退出等操作
    • 也可以直接使用rm 刪除swp這個隱藏檔案。

image-20240310054312869

  • O、E、R、D、Q、A分別代表開啟、編輯、恢復、刪除、退出

游標移動

  • 方向鍵控制移動

  • 命令 hjkl移動

  • 翻頁 pageup pagedown

  • 行首(home 0) 行尾(end $)

  • 跳到檔案的最後一行 G

  • 跳到檔案的第一行 gg

複製貼上

  • 複製

    • yy 複製游標當前所在行內容
    • nyy 複製當前行往下n行
  • 貼上

    • p(小寫) 當前行的下一行貼上
    • P (大寫)當前行的上一行貼上

注意:使用滑鼠從window或者其他地方複製內容到vim編輯器貼上,一定要在輸入模式下進行,否則資料會有丟失的風險。

搜尋替換(在命令模式下使用)

  • 搜尋 /待搜尋的內容,回車進行搜尋,搜尋到的結果會高亮顯示

    • n跳轉到下一個搜尋到的內容,N跳轉上一個
    • :noh 清除搜尋匹配之後的高亮顯示
  • 替換

    • :2,4s/原內容/替換內容/gc
    • 沒有g的時候,替換每一行匹配的到的第一個。g表示替換這一行的所有匹配到的
    • c表示替換前給使用者提示

    注意:如果需要進行全域性替換 所謂第一行到最後一行

  • :1,$s/原內容/替換內容/gc

  • :%s/原內容/替換內容/gc

刪除、撤銷操作

  • 刪除命令

    • dd 刪除游標所在當前行內容
    • ndd 刪除當前行往下n行
  • 撤銷、反撤銷

    • u 撤銷上一步的操作(後悔藥)
    • ctrl+r 反撤銷

相關文章