摘要:到第行陳皓注注意命令中的是大寫(xiě)的,另我一般使用到第行,如到第行到第一行。陳皓注相當(dāng)于,或到最后一行按單詞移動(dòng)到下一個(gè)單詞的開(kāi)頭。默認(rèn)上來(lái)說(shuō),一個(gè)單詞由字母,數(shù)字和下劃線組成陳皓注程序變量如果你認(rèn)為單詞是由字符分隔符,那么你需要使用大寫(xiě)的和。
寫(xiě)在前面
這里記錄下自己在學(xué)習(xí)vim過(guò)程中的一些坎坷和總結(jié)吧!后面補(bǔ)充……
簡(jiǎn)明vim練級(jí)攻略今天看到不少同學(xué)收藏,看樣子還是有很多人和我一樣的初級(jí)學(xué)習(xí)菜鳥(niǎo),哈哈,這里再次申明,文章主要內(nèi)容是從鏈接的原文作者哪里拷貝出的,其中自己有小的修改,另外,我會(huì)參考其他文章,將常用的一些東西都加入進(jìn)來(lái),后期會(huì)慢慢更新,其中一些說(shuō)的不清楚的地方,我也會(huì)實(shí)驗(yàn)后再詳細(xì)修改……
文章主要內(nèi)容來(lái)源于標(biāo)題連接的原文,這里記錄些我自己需要記憶的東西,這里敲一遍純粹是為了自己加深印象:
首先解釋下:
當(dāng)首次進(jìn)入vim時(shí),是處在Normal模式下的。
當(dāng)按下i之后會(huì)進(jìn)入–insert–模式,在左下角會(huì)出現(xiàn)–insert–字樣,或者漢化的-插入-,這是你就可以輸入字符了。
如果你想返回 Normal 模式,請(qǐng)按 ESC 鍵。
基本上所有的這里提到的vim快捷鍵都是在Normal模式下的。
在按下v之后是進(jìn)入visual模式。這個(gè)模式在下面會(huì)提到的吧!
在一般的編輯器下,當(dāng)你需要copy一段文字的時(shí)候,你需要使用 Ctrl
鍵,比如:Ctrl-C。也就是說(shuō),Ctrl鍵就好像功能鍵一樣,當(dāng)你按下了功能鍵Ctrl后,C就不在是C了,而且就是一個(gè)命令或是一個(gè)快鍵鍵了,在VIM的Normal模式下,所有的鍵就是功能鍵了。
下面的文字中,如果是 Ctrl-λ我會(huì)寫(xiě)成
以 : 開(kāi)始的命令你需要輸入
i → Insert 模式,按 ESC 回到 Normal 模式.
x → 刪當(dāng)前光標(biāo)所在的一個(gè)字符。
:wq → 存盤(pán) + 退出 (:w 存盤(pán), :q 退出) (陳皓注::w 后可以跟文件名)
dd → 刪除當(dāng)前行,并把刪除的行存到剪貼板里
p → 粘貼剪貼板 推薦:
hjkl (強(qiáng)例推薦使用其移動(dòng)光標(biāo),但不必需) →你也可以使用光標(biāo)鍵 (←↓↑→). 注: j 就像下箭頭。
:help
1.各種插入模式
a → 在光標(biāo)后插入
o → 在當(dāng)前行后插入一個(gè)新行
O → 在當(dāng)前行前插入一個(gè)新行
cw → 替換從光標(biāo)所在位置后到一個(gè)單詞結(jié)尾的字符【準(zhǔn)確的說(shuō)是刪除從光標(biāo)位置到一個(gè)單詞結(jié)尾的字符并進(jìn)入插入模式】
2.簡(jiǎn)單的移動(dòng)光標(biāo)
0 → 數(shù)字零,到行頭
^ → 到本行第一個(gè)不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車(chē)等)
$ → 到本行行尾
g_ → 到本行最后一個(gè)不是blank字符的位置。
/pattern → 搜索 pattern 的字符串(陳皓注:如果搜索出多個(gè)匹配,可按n鍵到下一個(gè),shift-n上一個(gè))
3.拷貝/粘貼 (陳皓注:p/P都可以,p是表示在當(dāng)前位置之后,P表示在當(dāng)前位置之前)
p 粘貼
yy → 拷貝當(dāng)前行當(dāng)行于 ddP(dd刪除當(dāng)前行,再粘貼)
在輸入v之后的視圖模式下,可以在選中多行的情況下復(fù)制和粘貼(后面做詳細(xì)的總結(jié))
4.Undo/Redo
撤銷(xiāo)和恢復(fù),這個(gè)應(yīng)該一定會(huì)用的到
u → undo
5.打開(kāi)/保存/退出/改變文件(Buffer)
:e path/to/file → 打開(kāi)一個(gè)文件
:w → 存盤(pán)
:saveas path/to/file → 另存為 path/to/file
:x, ZZ 或 :wq → 保存并退出 (:x 表示僅在需要時(shí)保存,ZZ不需要輸入冒號(hào)并回車(chē))
:q! → 退出不保存 :qa! 強(qiáng)行退出所有的正在編輯的文件,就算別的文件有更改。
:bn 和 :bp → 你可以同時(shí)打開(kāi)很多文件,使用這兩個(gè)命令來(lái)切換下一個(gè)或上一個(gè)文件。(陳皓注:我喜歡使用:n到下一個(gè)文件)
可以用:tabe filename打開(kāi)新的文件,文件之間的切換可以用gt到下一個(gè)文件,Gt上一個(gè)文件,下面詳細(xì)講下
第三級(jí)-更好、更強(qiáng)、更快更好
下面,讓我們看一下vim是怎么重復(fù)自己的:
. → (小數(shù)點(diǎn)) 可以重復(fù)上一次的命令
N
下面是一個(gè)示例,找開(kāi)一個(gè)文件你可以試試下面的命令:
2dd → 刪除2行
3p → 粘貼文本3次
10idesu [ESC] → 會(huì)寫(xiě)下 “desu desu desu desu desu desu desu desu desu
desu“
> 注意數(shù)字后面有i表示插入,其實(shí)說(shuō)白了,就是先輸入個(gè)數(shù)字,表示你要重復(fù)后面的命令都少次。下面再看一條命令:
100ovar[ESC] → 會(huì)寫(xiě)下100行的var,不行你試試!
. → 重復(fù)上一個(gè)命令—— 100 “desu “。
3.→ 重復(fù) 3 次 “desu” (注意:不是 300,你看,VIM多聰明啊).
更強(qiáng)
你要讓你的光標(biāo)移動(dòng)更有效率,你一定要了解下面的這些命令,千萬(wàn)別跳過(guò)。
NG → 到第 N 行 (陳皓注:注意命令中的G是大寫(xiě)的,另我一般使用 : N 到第N行,如 :137 到第137行)
gg → 到第一行。(陳皓注:相當(dāng)于1G,或 :1)
G 到最后一行
按單詞移動(dòng):
w → 到下一個(gè)單詞的開(kāi)頭。
e → 到下一個(gè)單詞的結(jié)尾。
b → 到前一個(gè)單詞的開(kāi)頭
如果你認(rèn)為單詞是由默認(rèn)方式,那么就用小寫(xiě)的e和w。默認(rèn)上來(lái)說(shuō),一個(gè)單詞由字母,數(shù)字和下劃線組成(陳皓注:程序變量)
如果你認(rèn)為單詞是由blank字符分隔符,那么你需要使用大寫(xiě)的E和W。(陳皓注:程序語(yǔ)句)
下面,讓我來(lái)說(shuō)說(shuō)最強(qiáng)的光標(biāo)移動(dòng):
% : 匹配括號(hào)移動(dòng),包括 (, {, [. (陳皓注:你需要把光標(biāo)先移到括號(hào)上)
*和# : 匹配光標(biāo)當(dāng)前所在的單詞,移動(dòng)光標(biāo)到下一個(gè)(或上一個(gè))匹配單詞(*是下一個(gè),#是上一個(gè))
更快
你一定要記住光標(biāo)的移動(dòng),因?yàn)楹芏嗝疃伎梢院瓦@些移動(dòng)光標(biāo)的命令連動(dòng)。很多命令都可以如下來(lái)干:
例如 0y$ 命令意味著:
0 → 先到行頭
y → 從這里開(kāi)始拷貝
$ → 拷貝到本行最后一個(gè)字符
你可可以輸入 ye,從當(dāng)前位置拷貝到本單詞的最后一個(gè)字符。
你也可以輸入 y2/foo 來(lái)拷貝2個(gè) “foo” 之間的字符串。
還有很多時(shí)候并不一定你就一定要按y才會(huì)拷貝,下面的命令也會(huì)被拷貝:
d (刪除 )
v (可視化的選擇)
gU (變大寫(xiě))
gu (變小寫(xiě))
等等
第四級(jí)-vim超能力(陳皓注:可視化選擇是一個(gè)很有意思的命令,你可以先按v,然后移動(dòng)光標(biāo),你就會(huì)看到文本被選擇,然后,你可能d,也可y,也可以變大寫(xiě)等)
你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,現(xiàn)在,我們向你介紹的是VIM殺手級(jí)的功能。下面這些功能是我只用vim的原因。
在當(dāng)前行上移動(dòng)光標(biāo): 0 ^ $ f F t T , ;
0 → 到行頭
^ → 到本行的第一個(gè)非blank字符
$ → 到行尾
g_ → 到本行最后一個(gè)不是blank字符的位置。
fa → 到下一個(gè)為a的字符處,你也可以fs到下一個(gè)為s的字符。
t, → 到逗號(hào)前的第一個(gè)字符。逗號(hào)可以變成其它字符。
3fa → 在當(dāng)前行查找第三個(gè)出現(xiàn)的a。
F 和 T → 和 f 和 t 一樣,只不過(guò)是相反方向。
dt" → 刪除所有的內(nèi)容,直到遇到雙引號(hào)"。
區(qū)域選擇
在visual 模式下,這些命令很強(qiáng)大,其命令格式為:
action可以是任何的命令,如 d (刪除), y (拷貝), v (可以視模式選擇)。
object 可能是: w 一個(gè)單詞, W 一個(gè)以空格為分隔的單詞, s 一個(gè)句字, p 一個(gè)段落。也可以是一個(gè)特別的字符:"、 "、 )、 }、 ]。
假設(shè)你有一個(gè)字符串 (map (+) ("foo")).而光標(biāo)鍵在第一個(gè) o 的位置。
vi" → 會(huì)選擇 foo.
va" → 會(huì)選擇 "foo".
vi) → 會(huì)選擇 "foo".
va) → 會(huì)選擇("foo").
v2i) → 會(huì)選擇 map (+) ("foo")
v2a) → 會(huì)選擇 (map (+) ("foo"))
塊操作:
塊操作,典型的操作: 0
^ → 到行頭
I-- [ESC] → I是插入,插入“--”,按ESC鍵來(lái)為每一行生效(注意:這里的I是大寫(xiě)哦,小寫(xiě)不行的)。
在Windows下的vim,你需要使用 而不是 , 是拷貝剪貼板。
自動(dòng)提示:
在 Insert 模式下,你可以輸入一個(gè)詞的開(kāi)頭,然后按 或是,自動(dòng)補(bǔ)齊功能就出現(xiàn)了……
宏錄制: qa 操作序列 q, @a, @@
qa 把你的操作記錄在寄存器 a。
于是 @a 會(huì)replay被錄制的宏。
@@ 是一個(gè)快捷鍵用來(lái)replay最新錄制的宏。
示例
在一個(gè)只有一行且這一行只有“1”的文本中,鍵入如下命令:
- qaYpq→ - qa 開(kāi)始錄制 - Yp 復(fù)制行. - 增加1. - q 停止錄制. - @a → 在1下面寫(xiě)下 2 - @@ → 在2 正面寫(xiě)下3 - 現(xiàn)在做 100@@ 會(huì)創(chuàng)建新的100行,并把數(shù)據(jù)增加到 103.
可視化選擇: v,V,
前面,我們看到了
J → 把所有的行連接起來(lái)(變成一行)
< 或 > → 左右縮進(jìn)
= → 自動(dòng)給縮進(jìn) (陳皓注:這個(gè)功能相當(dāng)強(qiáng)大,我太喜歡了)
在所有被選擇的行后加上點(diǎn)東西:
選中相關(guān)的行 (可使用 j 或
$ 到行最后
A, 輸入字符串,按 ESC。
分屏: :split 和 vsplit.
下面是主要的命令,你可以使用VIM的幫助 :help split. 你可以參考本站以前的一篇文章VIM分屏。
:split → 創(chuàng)建分屏 (:vsplit創(chuàng)建垂直分屏)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/24813.html
摘要:注暫時(shí)沒(méi)有注還是最早偏聽(tīng)偏信,嫌棄臃腫,忍受著不停的嗶嗶嗶,先學(xué)習(xí)了。后來(lái)在好奇心和折騰的本能驅(qū)使下,開(kāi)始走上之路。的印象則是激進(jìn)。但是在不斷的嗶嗶嗶聲之后,開(kāi)始享受它的按鍵方式。理由語(yǔ)法高亮干擾代碼閱讀注暫時(shí)引用這個(gè)地址,有時(shí)間轉(zhuǎn)到來(lái)。 注1:時(shí)間有限,一次不能完成本文,慢慢添加、改進(jìn)。注2:暫時(shí)沒(méi)有注2. Emacs 還是Vim 最早偏聽(tīng)偏信,嫌棄 Emacs 臃腫,忍受著不停的嗶...
摘要:作為一款古老而具有持久生命力的編輯器,自有它的強(qiáng)大之處。其實(shí),以一種近乎自然語(yǔ)言的方式幫助你完成文本的編輯工作。只需要熟悉幾條簡(jiǎn)單的語(yǔ)法,你就會(huì)坐在旋轉(zhuǎn)座椅上前后打轉(zhuǎn),感慨美妙的生活又回來(lái)了。現(xiàn)在就讓我們一起來(lái)學(xué)習(xí)一下語(yǔ)吧。 作為一款古老而具有持久生命力的編輯器,Vim 自有它的強(qiáng)大之處。很多人覺(jué)得 Vim 的學(xué)習(xí)曲線太陡峭了,為了能夠把 Vim 用得風(fēng)生水起,不得不記憶大量的命令。如...
摘要:的學(xué)習(xí)曲線是非常陡的,一開(kāi)始學(xué)習(xí)的時(shí)候,面對(duì)很多的操作命令要去記住,常常望而卻步。其實(shí),只要記住一些常用的命令,加之在工作中堅(jiān)持使用進(jìn)行編輯,很快就能得心應(yīng)手了。 使用 Vim 的時(shí)間不長(zhǎng),但如今已經(jīng)離不開(kāi)熟悉的 Vim 編輯模式了。 Vim 的學(xué)習(xí)曲線是非常陡的,一開(kāi)始學(xué)習(xí)的時(shí)候,面對(duì)很多的操作命令要去記住,常常望而卻步。 其實(shí),只要記住一些常用的命令,加之在工作中堅(jiān)持使用 Vim ...
摘要:學(xué)習(xí)第一步,當(dāng)然是如何退出,然后是移動(dòng)增刪改查保存,后面如果還有興趣就學(xué)習(xí)一些進(jìn)階操作。分別表示左,下,上,右上左右下代表的方向很難記試試口決下上,而在兩邊自然代表左右,記憶量變少,可能會(huì)好記很多。如果想移動(dòng),按下返回普通模式再移動(dòng)。 stackoverflow 在vim類(lèi)的問(wèn)題里,有超過(guò)100萬(wàn)次提問(wèn)是關(guān)于,如何退出vim,哈哈。要高效的使用vim,學(xué)習(xí)曲線實(shí)在是太陡了,所以我的真實(shí)...
閱讀 830·2021-07-25 21:37
閱讀 3714·2019-08-30 15:55
閱讀 2639·2019-08-30 15:54
閱讀 1802·2019-08-30 15:44
閱讀 3175·2019-08-30 15:44
閱讀 920·2019-08-30 15:43
閱讀 1128·2019-08-29 15:36
閱讀 3127·2019-08-29 10:58