Linux編譯四元件(一):Vim教程

語言: CN / TW / HK

本文已參與「新人創作禮」活動,一起開啟掘金創作之路。

Vim

Vim是從 vi 發展出來的一個文字編輯器。 程式碼補全、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用,和Emacs並列成為類Unix系統使用者最喜歡的文字編輯器。 我們可以通過Vim程式碼編輯器進行程式的書寫.

Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。

1999 年Emacs被選為Linuxworld文字編輯分類的優勝者,Vim屈居第二。 但在2000年2月Vim贏得了Slashdot Beanie的最佳開放原始碼文字編輯器大獎,又將Emacs推至二線 總的來看, Vim和Emacs在文字編輯方面都是非常優秀的。

  • 我們可以通過使用者手冊指令man檢視系統給出的資訊: 輸入指令 man vim

vimtutor

vim官方自帶的學習教程vimtutor (如果顯示中文請跳過該部分)

如果您進入之後是全英的,那麼恭喜你獲得了提升英語文字閱讀的能力,但如果您還是希望強調舒適感,這裡也提供了漢化顯示的教程.

在終端輸入指令: ① echo "LANG=\"zh_CN.UTF-8\"" >> ~/.bashrc

source ~/.bashrc 執行完兩句指令在進入vimtutor就會變成漢語了~

系統給出的資訊

輸入指令 man vimtutor 檢視 vimtutor 詳細資訊

vimtutor教程的設計思路是在使用中進行學習的。也就是說,您需要通過實際執行命令來學習它們本身的正確用法。 如果您只是閱讀而不操作,那麼您可能會很快遺忘這些命令的!

接下來我們在終端輸入vimtutor,來具體檢視命令操作,閱讀領略一下vim支援的"豐富繽紛"的指令.

vim指令

這裡提供一份大佬製作的鍵盤圖 與 常用命令速查: 在這裡插入圖片描述

下面列舉一些常見的指令,這些指令都是在普通模式下執行的:

vim中有5種模式:普通模式插入模式命令模式可視模式替換模式.

  1. h 向左移動 l 向右移動 j 向下移動 k 向上移動 在非圖形化介面,使用指令進行移動就顯得尤為重要,在Linux系統環境下程式設計儘量使用這四個鍵來代替方向鍵 但是如果想要輸入這幾個字母,就要切換至插入模式,才能用於編輯文字

  2. 以下都是進入==插入模式==: i在游標之插入文字 a在游標之插入文字 I在本行行首插入文字 (shift + i) A在本行行末插入文字 (shift + a)

  3. : 進入==命令模式== :w 儲存 :q 退出 :q! 不儲存修改,直接強制退出 :wq 儲存並推出

  4. r 進入==替換模式== R替換多個文字 (shift + r)

  5. v 進入==可視模式==,意為選擇模式 1.按v進入可視模式 2.游標向右移,選中想要複製的文字 3.按y複製在剪下板 (vim的剪下板)與Windows的剪下板不互通 4.按p粘貼出來 [以上操作僅限於Vmware中]

    ym 複製這個單詞

    yy 複製一整行

  6. esc 返回==正常模式==

  7. x 刪除游標處文字

  8. dw (delete word)
    從游標當前位置直到下一個單詞開始處,不包括它的第一個字元

de 從游標當前位置直到本單詞末尾,包括最後一個字元 (如果是中文的話,刪除到第一個不是中文的地方)

db 向前刪除一個單詞

d$ 刪除到當前整行行末

d2w 刪除兩個單詞,游標置於單詞

d2e 刪除兩個單詞,游標置於單詞

dd 一次刪除一整行
2dd一次刪除兩行

    (dd其實並未物理刪除,而是儲存在了`貼上板`,`p`貼上在游標**後**,`P`貼上在游標**前**)
  1. 數字 + w 使游標向移動 ~ 個單詞,游標置於單詞首部

數字 + b 使游標向移動 ~ 個單詞,游標置於單詞首部

數字 + e 使游標向移動 ~ 個單詞,游標置於單詞末尾

  1. u (undo) 撤銷一次操作

U 撤銷整行操作 (shift + u)

Ctrl + r 反撤銷(重做)

  1. Ctrl + z 把 vim 放在後臺

fg 再切換出來

  1. cw (change word)
    [與dw不同的是:進入了插入模式]

刪除到單詞末尾,同時進入插入模式
ce cb c$ c2w 都同之前的d~操作

  1. Ctrl + g 顯示當前游標位置檔案資訊

  2. gg來到檔案開頭

  3. G 來到檔案末尾(shift + g)

  4. 行號跳轉 :492 492 shift + g

  5. 兩次引號'' 回到上次跳轉位置

  6. set nu 在左側設定行號 <---->set nonu取消行號

  7. / + 單詞,從前向後查詢內容 再點選n,下一個單詞 再點選N,上一個單詞(shift + n)

  8. ? + 單詞 從後向前查詢

  9. shift + f5也就是(%) 找到匹配括號 找到( ),[ ],{ },其中一個所對應的另一個 [==可以用於跳轉到函式末尾==]

  10. :s /被替換內容/想要替換成為的內容/ g ---> g表示整行所有內容

:s /被替換內容/想要替換成為的內容/ gc--->gc每次替換前都會詢問是否替換

:%s /被替換內容/想要替換成為的內容/ g --->整個檔案替換

:行號,行號 s /被替換內容/想要替換成為的內容/ g --->指定行內容替換

(這裡行號的分隔符不一定要用,:也可以)

  1. :!執行外部命令 :!ls 不退出 vim 情況下使用Linux系統指令

  2. o在當前行的下方建立新行 ----小寫字母o O 在當前行上方建立新行(shift + o)

  3. 0 移動游標到行首----數字0 $ 移動游標到行末

每一次啟動檔案都需要重新輸入指令,那麼有沒有什麼辦法可以使得效果得以儲存?

可以通過固化配置功能:

1.在終端上cd回到home目錄

2.輸入指令vim .vimrc (這裡Linux中以.開頭的檔案為隱藏檔案,ll -a可以檢視到)

3.進入後點擊i進入插入模式輸入set nu

4.:wq儲存退出

之後再開啟就是預設設定行號了

總結

如此豐富的快捷鍵和指令集合,一時半會也無法全部掌握,這就要求學者在使用中總結,學以致用,通過反覆操作,練就肌肉記憶,同時切勿死記硬背,到頭來只是敗倒在龐雜的指令體系中,所以一定要戰略性學習~