首先簡短的介紹一下,簡單來說你可以把vim想像成一般我們常用的Windows裡面的.text
檔的編輯器。vim是Linux作業系統下常用的一個文字編輯器,其功能多樣,能讓使用者不用操作滑鼠僅僅通過鍵盤來達到文字編輯,簡簡單單的完成平日的文字編輯工作,最重要的是在熟悉操作環境後可以讓使用者開發和編輯的速度大幅提昇。
接下來的介紹會以Linux系統的環境為範例。
在Ubuntu Linux系統中本身並不自帶vim,需要我們自己手動下載。
Ctrl + Alt + T
開啟終端機(terminal)。sudo apt install vim -y
進行安裝。在terminal上輸入 vim <檔案名稱>
(<檔案名稱>
可省略,如果檔案本身存在它就會直接開啟)
我們剛進入vim時,是處於普通模式(在此模式下沒辦法輸入),我們需要按i
跳轉到編輯模式才可以開始書寫(這個模式就是單純的書寫,也只能進行書寫)。
我們編輯完後按ESC
離開編輯模式跳回開檔時的普通模式,然後直接輸入:w
就會直接進行存檔
:q
vim就結束了,並跳回我們開檔時terminal的畫面。以上談到的是最基礎的基本操作,接下來介紹一下vim的強大,對一般人來說vim的強大在於它的指令。
如果是剛剛接觸vim,以下介紹的大概知道有這些功能就好,在日後使用和摸索下慢慢熟悉即可。
這邊這介紹一下vim的幾個原生基本模式,以及一些常用度比較高的指令。
這邊模式乍看之下分很多種,但實際上使用時,只要在普通模式下直接輸入下列指令即可。唯一比較特別的是Ex模式,但它其實就是可以一次執行多條下面所提到的指令。
以下指令(介於-
和:
之間的)只要不是在編輯模式下直接輸入即可產生效果:
- 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(加 ! 表示強制退出)
這邊先簡單提一下,假設我們用vim開啟<檔案名稱>
檔,在你開啟vim後就會在當前的目錄下新建一個.<檔案名稱>.swp
,此時的檔案是一個緩衝(buffer)的概念,vim會等到你執行存檔操作才正式新建<檔案名稱>
檔,同時在你離開vim後移除.<檔案名稱>.swp
,並保留原先已經存好的<檔案名稱>
。