1. 程式人生 > >第一章 vim中簡化刪除,游標移動和查詢操作

第一章 vim中簡化刪除,游標移動和查詢操作

個人vim使用基礎中,整理了最簡單的常規用法,但對於vim這個軟體來說,利用功能還遠遠不夠。

本質上講,我們的程式碼編寫工作是重複性的,凡是可以簡化重複性操作的方式,都會成倍節省我們的時間。

這正是vim的核心思想。

一,命令列模式下簡化刪除:

①刪除單個字元:【x】

②刪除從游標開始到單詞結尾:【dw】


假設游標在r處,按下【dw】後ruct這4個字元被刪掉了;

假設游標在單詞第一個字元處,按下【dw】會刪除整個單詞;

假設游標在單詞第一個字元處,按下【d2w】會刪除兩個連續單詞;


如圖struct list 兩個單詞被刪掉了。

③刪除游標停留的那整行:【dd】

   假設想連續刪除多行,則用【4dd】連續刪除4行;

④從游標處往前刪除詞:【db】

    和【dw】的作用方向正好相反。

⑤刪除整個單詞:【daw】

  僅當游標停留在一個單詞開頭,【dw】才能刪除整個單詞,否則只能刪除一部分;

  而【daw】不考慮游標的停留位置,只要在該單詞上,則會自動刪除整個單詞;

————————————————————————

點命令【.】含義是重複上次修改,上次修改的單位可以是字元,整行,甚至整個檔案。

因此如果刪除整行【dd】,配合【.】也可以起到重複操作的目的。

點命令最大的用處在於,每次從輸入模式到命令模式切換時,整個階段vim會記錄每一個按鍵操作,使用點命令可以重新執行所有的這些按鍵操作,就好像“一鍵回放”,我們可以把點命令當成一個巨集。

比如要給下面的結構體語句添上;號


按照常規方法做會比較慢,這時候游標先移動到第一條語句上,【A】【;】【ESC】

再反覆使用【j】【.】即可。

二,簡化行游標移動:

① 游標移動到行尾 【&】

② 游標移動到行尾並進入輸入模式,類似於【&】【a】:  【A】

③ 游標移動到行尾並回車,再進入輸入模式,類似於【&】【enter】【a】: 【o】

     小o的作用類似於新建一空白行;

④ 游標移動到行首【^】

⑤ 游標移動到整個檔案頭部【gg】

⑥ 游標移動到整個檔案尾部【G】

三,簡化行內游標移動:

①游標移動到單個字元:【f】,也用於查詢。

比如要在本行移動游標至字元*處,直接【f*】即可


【f*】不能跨行,它無法找到第4條語句*list。

如果一行語句包含多個字元*,不需要重複按【f*】,使用【;】。

撤銷回退命令是【,】。

②游標移動到片語:【/】,也用於正向查詢。


假設輸入/hel,游標會自動移動到包含該字串下一處片語。

該命令能夠跨行,要找到下一行的hello,不需要重複輸入/hel,使用【n】。

撤銷回退命令是【N】。

同理反向移動游標及查詢:【?】

③無需輸入即可移動游標,查詢:【*】

前面兩種都需要輸入命令,只需要先把游標移動到單詞上,按下【*】,相當於執行【/整個單詞】,要查詢下一個,重複使用【n】。

④ 【w】移動游標到下一個單詞開頭,【b】移動游標到上一個單詞開頭,兩者均可跨行。

配合點命令【.】以及【*】星命令,就能實現快速的查詢並替換。

首先在需要被替換的單詞上按【*】,然後【a】修改第一個單詞,完成後【ESC】,此時vim已經記住了操作,剩下的就是重複【n】查詢下一個,【.】回放操作。

仔細體會vim對重複操作的簡化,追求的是一鍵移動,一鍵操作修改。