你要讓你的光標(biāo)移動(dòng)更有效率,你一定要了解下面的這些命令,千萬(wàn)別跳過(guò)。
G
→ 到第 N 行 (陳皓注:注意命令中的G是大寫(xiě)的,另我一般使用 : N 到第N行,如 :137
到第137行)gg
→ 到第一行。(陳皓注:相當(dāng)于1G,或 :1)G
→ 到最后一行。w
→ 到下一個(gè)單詞的開(kāi)頭。e
→ 到下一個(gè)單詞的結(jié)尾。> 如果你認(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è))相信我,上面這三個(gè)命令對(duì)程序員來(lái)說(shuō)是相當(dāng)強(qiáng)大的。
你一定要記住光標(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ě))(注:可視化選擇是一個(gè)很有意思的命令,你可以先按v,然后移動(dòng)光標(biāo),你就會(huì)看到文本被選擇,然后,你可能d,也可y,也可以變大寫(xiě)等)
你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,現(xiàn)在,我們向你介紹的是VIM殺手級(jí)的功能。下面這些功能是我只用vim的原因。
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ò)是相反方向。
還有一個(gè)很有用的命令是 dt"
→ 刪除所有的內(nèi)容,直到遇到雙引號(hào)—— "。
a
或 i
在visual 模式下,這些命令很強(qiáng)大,其命令格式為
a
和 i
d
(刪除), y
(拷貝), v
(可以視模式選擇)。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
^
→ 到行頭
→ 開(kāi)始?jí)K操作
→ 向下移動(dòng) (你也可以使用hjkl來(lái)移動(dòng)光標(biāo),或是使用%,或是別的)I-- [ESC]
→ I是插入,插入“--
”,按ESC鍵來(lái)為每一行生效。
在Windows下的vim,你需要使用
而不是
,
是拷貝剪貼板。
和
在 Insert 模式下,你可以輸入一個(gè)詞的開(kāi)頭,然后按
qa
操作序列 q
, @a
, @@
qa
把你的操作記錄在寄存器 a。
@a
會(huì)replay被錄制的宏。@@
是一個(gè)快捷鍵用來(lái)replay最新錄制的宏。示例
在一個(gè)只有一行且這一行只有“1”的文本中,鍵入如下命令:
qa Yp q
→
qa
開(kāi)始錄制Yp
復(fù)制行. //Y復(fù)制行 p粘貼
增加1.q
停止錄制.@a
→ 在1下面寫(xiě)下 2@@
→ 在2 正面寫(xiě)下3100@@
會(huì)創(chuàng)建新的100行,并把數(shù)據(jù)增加到 103.
v
,V
,
前面,我們看到了
的示例 (在Windows下應(yīng)該是v
和 V
。一但被選好了,你可以做下面的事:
J
→ 把所有的行連接起來(lái)(變成一行)<
或 >
→
左右縮進(jìn)=
→ 自動(dòng)給縮進(jìn) (注:這個(gè)功能相當(dāng)強(qiáng)大,我太喜歡了)
在所有被選擇的行后加上點(diǎn)東西:
j
或
或是 /pattern
或是 %
等……)$
到行最后A
, 輸入字符串,按 ESC。
(
I 是在行前加上點(diǎn)東西 A 是在行后
)
:split
和 vsplit
.
下面是主要的命令,你可以使用VIM的幫助 :help split
. 你可以參考以前的一篇文章VIM分屏。
:split
→ 創(chuàng)建分屏 (:vsplit
創(chuàng)建垂直分屏)
: dir就是方向,可以是 hjkl
或是
←↓↑→ 中的一個(gè),其用來(lái)切換分屏。_
(或 |
) :
最大化尺寸 (+
(或 -
) :
增加尺寸
學(xué)習(xí)vim就像學(xué)彈鋼琴一樣,一旦學(xué)會(huì),受益無(wú)窮。
——————————正文結(jié)束——————————
這是一個(gè)你不需要使用鼠標(biāo),不需使用小鍵盤(pán),只需要使用大鍵盤(pán)就可以完成很多復(fù)雜功能文本編輯的編輯器。不然,Visual Studio也不就會(huì)有vim的插件了。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com