vim 二 · 重復

學會組合只是 vim 入門,雖然是入門也非常博大精深了,像有追求的 vimer 總是在探索更精簡的組合命令,探索如何用更少的按鍵實現某種操作,再把更精簡的組合命令練成肌肉記憶。

學會重復命令可以讓你的 vim 水平再上一層,學會重復命令才能你再也不想打開別的編輯器(好像僅僅學會組合命令也能達到同樣的效果)。

移動命令

  • ;,重復上一次 fFtT 命令
  • ,,逆向重復上一次 fFtT 命令
  • n,重復上一次 /? 搜索命令
  • N,逆向重復上一次 /? 搜索命令

操作命令

  • .,重復上一次操作,主要用來重復組合命令,畢竟組合命令按鍵比較多呀。
  • daw..,刪除三個單詞,比 dawdawdaw 短多了,當然還有更短的 3daw,但 . 的好處在于你不用一開始就考慮好刪幾個單詞,只用一直 . 到不需要刪為止。
  • A;<esc>j.j.jj.,添加 4 個行尾分號,最后一個分號按兩次 j,可以隔一行再添加分號。這是「移動點重復」模式,在「重復執行非常細小的操作,而且重復過程中可能需要隨時調整,重復次數也不多」的場景下可以使用這個模式。像這類非常細微的日常重復也被簡化到極致,這就是 vim 的進階玩法。一般情況下你的編輯工作應該是從頭到尾都用這個模式完成的。

宏,錄制鍵盤

  • qqngUiwq,第一個 q 用來啟動宏錄制,第二個 q 是宏的名稱,然后是錄制的內容,最后用 q 停止錄制。錄制「搜索下一項然后大寫」并儲存到名為 q 的宏,宏相當于把移動命令和操作命令放在一起重復執行了,在大型的、確定的、無干擾的情況下使用,比如復雜的排版格式重構。
  • @q 執行一次名為 q 的宏。在錄制這個宏之前已經執行過 /abc 命令了,所以在執行時會搜索包含 abc 的單詞然后大寫。
  • @@,意思是執行上次執行過的宏,也就是 q 宏。這樣你就可以按著 @@ 不松來連續多次執行宏了。
  • 99@q99@@,可以加上宏的執行次數,這是執行 99 次。

大招來了。

  • qqqqqngUiw@qq,根據上面的知識可以知道前面三個 q 意思是清空 q 宏,然后正常錄制,最后在錄制結尾處調用 q 宏,因為這時 q 宏是空的,所以這最后一步無效果,現在結束錄制以后 q 宏就有內容了,想想 @q 執行宏會是什么效果。所以遞歸宏就誕生了,嚇得都變成粗體字了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 命令歷史 以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。 啟動vim 在命令...
    im螞蟻閱讀 30,826評論 3 48
  • 最近集中讀了幾本關于Vim的書,?以《Practical Vim》最為詳盡,特重新溫習并總結成篇,一來作為復習和練...
    南瓜不胡鬧閱讀 5,870評論 1 29
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,539評論 9 467
  • #玩卡不卡·每日一抽#每一位都可以通過這張卡片覺察自己: 1、直覺他叫什么名字?安娜 2、他幾歲了?30 3、他現...
    我心安住閱讀 104評論 0 0