歡迎光臨
每天分享高質量文章

Vim 普通樣式的一般性規律性總結

已經受不了網上無數 Vim 的教學,基本都是片湯話,抄來抄去。做為一名技術人員,應該能深入的去瞭解一個軟體,然後總結出來經驗和規律,而不是記錄一個流水帳,這才是最佳的學習方式。
— Onefishum


本文導航
轉載自 | https://www.jianshu.com/p/0f36dea0c651
 作者 | 簡書 / Onefishum

編者按:之前我們發了一些很基礎的 Vim 教程,有同學說了,你這都是無聊的水文,學習 Vim 就應該總結規律,才能學會。愚也以為然,於是求得轉載。本文對 Vim 的普通樣式(Normal)做了一番總結,可能其中還有一些不足或疏漏,但是這個思路非常好,請大家無論是拋磚還是拋玉,請大家輕拍~~^_^


前言

已經受不了網上無數 Vim 的教學,基本都是片湯話,抄來抄去。做為一名技術人員,應該能深入的去瞭解一個軟體,然後總結出來經驗規律,而不是記錄一個流水帳,這才是最佳的學習方式。計算機與人不同,能處理的東西一般都具有一定的規則性,無規則存在概率性的東西,不是計算機處理的強項,尤其對於軟體設計來,良好的規律性,能大幅提升軟體的可操作性。

對於 Vim 來講,這個號稱神器的東西,定不能放棄這種規律,結果讓一些磚家講的反而如同垃圾,需要死記硬背一堆命令,實則是沒有真正瞭解 Vim,精華的東西卻很少見。之所以稱之神器,肯定不是簡簡單單的增刪改查,通過命令組合,可以大幅提升文本編輯的速度,遠比常規的滑鼠操作快,達到手不離鍵盤。

本文僅僅總結一下普通樣式Normal下 Vim 的一些規律性。

直接上硬貨

普通樣式下通用命令格式(在該樣式下,大部分文本命令基本跳不出這個範圍):

  1. [範圍]命令[作用域][物件]

範圍(可忽略)

一般存在以下幾種:

◈ 數量或位置。例如:2y2gg2d2fh(找查當前行,第 2 個 h 的位置)。
◈ 區域。例如:20,30y 、20,30d

命令(必填)

這部分沒有什麼可以說的,網上的片湯文章已經很多了一般來講,就是增刪改查複製粘帖之類的。

作用域(可忽略)

這個作用域,一般來講,是指後面的[物件]範圍,一般可以是數字或者一些“動詞”。

數字:

d2wy2wf2,

動詞:

測試用例:

  1. setopt(ch, "this is a test", 1);

◈ a(包含)
如果光標在括號內,刪除包含括號在內的內容。
da),很神奇的包含括號在內的內容全部都被刪除了,這比在傳統的編輯器中,慢慢的按 del 鍵一個個來刪,和用滑鼠選擇來刪,要精準快速得多。可以私下試試所有成對字符,例如:"']}等。
例如:比較經典的daw,在語意上可以理解為刪除一個單詞,它與dw的區別在於,dw 只能刪除當前光標到單詞的結尾,而daw,則會刪除整個單詞。
◈ i(內嵌)
有了包含,就會有內嵌。例如 "" 內的內容(不包括 ""),例如di"

(Vim 下可以參考幫助 :h text-object

物件(一般需組合作用域)

符號物件:

成對的符號,如上面所舉 "')}],其中 ) 也可以用 b 來表示dab} 也可以用 B

文本物件:

◈ w 單詞
◈ W 字串
◈ s 句子
◈ p 段落

總結

本文作者是一個學理出身的,可能文字功底並不是很好。中心思想,只是希望大家使用計算機時,能儘量拋棄死記硬背,應該從中能找到規律性的東西,理解一個軟體。通過以上文章,希望大家能在規律的基礎進行排隊組合,從而達到更好的效果。

碼農和大拿的區別:思想。

推薦

《Vim 實用技巧》,這本書有電子版的,質量還不錯。但真心推薦買一本,不貴但全書實貨滿滿,空閑時看看,應該每次都能有一些收穫,這本書更多註重的是思想,應該是我見過最好的 Vim 叢書,沒有之一。

推薦文章

< 左右滑動查看相關文章 >

點擊圖片、輸入文章 ID 或識別二維碼直達

赞(0)

分享創造快樂