少年,我看你骨骼精奇,是萬中無一的武學奇才,維護世界和平就靠你了,我這有本祕籍《Vim修煉祕籍》,見與你有緣,就十塊賣給你了!git
若是你是一名 Vimer,那麼恭喜你,你的 Vim 技能立刻要升級了 😈!github
若是你以前不瞭解過 Vim ,那麼也不要緊,本文就當成學英語語法了!vim
好,廢話很少說,祕籍送上。ide
ps: 建議先熟悉一遍 Vim修煉祕籍之命令篇,本祕籍食用更佳post
Vim 功法之究極總結: (操做次數)+ 操做行爲 + 操做範圍code
下面,我會將此祕訣 親自傳授於你。對象
先列一些經常使用的 Vim 招式給你瞧瞧,看你是不是傳說的練武奇才:blog
c2w —— 刪除當前光標後緊鄰的兩個單詞,並轉換爲普通模式 dip —— 刪除當前光標所處的一段內容 y3f{char} —— 從當前字符,一直複製到第三個 {char} 字符 >G —— 當前行到結尾,總體縮進一個 <Tab> v`{mark} —— 從當前字符,選擇到 {mark} 標記位置 cit —— 刪除當前光標所處標籤中的內容
若是把招式當作語言,解析其語法,不難發現一個共同點:ip
每一個招式必須包括 ** 謂語(操做行爲) 與 賓語(操做對象)**ci
好,既然有了線索,我這就帶你各個擊破!
衆所周知,謂語是 動詞詞性的。
在 Vim 功法中,經常使用的動詞以下:
c
刪除內容,進入普通模式
d
刪除
y
複製
v
選擇
>,<
縮進
=
智能縮進
gu,gU,g~
改變內容大小寫
賓語表明的是操做對象,而在 Vim 中,所需操做的對象便是 操做的範圍。
而經常使用的操做範圍命令以下:
w
從當前位置,到下一個單詞首字母,單詞由特殊字符(".等)做爲間隔
內容: .main {xxx} , 光標處在字符 m
招式:caw
結果:. {xxx}
W
從當前位置,到下一個單詞首字母,單詞由空格做爲間隔
內容: .main {xxx} , 光標處在字符 m
招式:caW
結果: {xxx}
e
從當前位置,到本單詞尾字母
ge
從當前位置到上一個單詞尾字母
b
- 一般代替括號中的內容
- 上一個單詞首字母
p
段落 paragraph
s
句子 sentence
t
標籤中的內容
內容: <tag>content</tag>
,光標處在字符 a
招式: cit
結果: <tag></tag>
B
一般代替花括號中的內容
符號 {) "'<
表明的就是 該符號中的內容
G,gg
結尾,開頭
j,k,h,l
上下左右
/{word}<Enter>
從當前字符 到下一個word之間的內容
f{char}
從當前字符到下一個 char 字符之間的內容
`mark
從當前字符到mark標記 之間的內容
雙寫動詞,操做範圍默認是當前行
假如如今有個任務,讓你刪除兩個單詞,你會怎麼作?
d2w
刪除兩個單詞
2dw
執行兩次刪除單詞的命令
雖然這兩式結果相同,但意義卻有所差異,
數詞靈活多變,可放在 謂語(操做行爲)前,又可放在 賓語(操做對象)前,
經常使用的介詞就兩個:i(inside) , a(around)
舉例說明:光標處在字符 c
<main><div class="vim-test">I am Vimer!</div></main>
分別操做:
dat
結果:<main></main>
dit
結果: <main><div class="vim-test"></div></main>
顧名思義,i 就是內部的內容,a 就是連同包裹的內容 一塊兒幹掉。
我已經教授了你 Vim 祕籍的基本功 :(操做次數)+ 操做行爲 + 操做範圍
如今,利用你所學,來實戰鞏固吧。
將下面標籤中的內容修改了: I am Vimer! (光標所處 字符 c )
<div class="vim-test">you are Bimer!</div>
修改下面字符串爲 https://tomotoes.com !(光標所處 第一個 w 字符)
將文件 全部內容格式化,寫出 你認爲的命令
將下面字符串改成 I am Vimer (光標所處 I 字符)
I am VIMER
將下面字符串的每一個字符替換爲 '!'
I love github and juejin
等待你的評論答案。
好的功夫是練出來的,請你之後務必勤加練習。
好了,Vim 語法先告一段落,但願本文能給你帶來幫助。
若是你想了解 Vim 其餘方面 如:Ex 命令,寄存器等,請關注個人我的博客。