姓名:張志文 學(xué)號(hào):19021210649
【嵌牛導(dǎo)讀】
vim是一種很好用的編輯器,今天來介紹一下vim的入門
【嵌牛鼻子】
vim
【嵌牛提問】
vim該如何入門呢你画?
【嵌牛正文】
理準(zhǔn)備
學(xué)習(xí)任何一門技能都會(huì)存在學(xué)習(xí)曲線,不同的技能學(xué)習(xí)曲線不盡相同瀑焦,不過學(xué)習(xí) vim 的朋友,看著下面這個(gè) 90° 的學(xué)習(xí)曲線愉老,可能需要喝杯 82 年的咖啡壓壓驚 ??舀凛。
不過珊蟀,毛主席都說過,任何敵人都是紙老虎
覆糟,所以我們對(duì)于學(xué)習(xí) vim 在做好充分心理準(zhǔn)備的情況下刻剥,也沒必要太打消自己的信心,小時(shí)候我們學(xué)賣油翁時(shí)也學(xué)過最樸素的道理:無他滩字,但手熟爾
造虏,只要訓(xùn)練充分得當(dāng)御吞,我們也可以像賣油翁將油輕松倒過銅錢般掌握好 vim,所以漓藕,我們做好了玩 hard 模式的心理準(zhǔn)備就可以上路啦陶珠。
小試牛刀
磨刀霍霍
要把玩 vim 首先要進(jìn)入到 vim 的normal模式
,才能拿到它那把鋒利的道具享钞,進(jìn)入normal
模式的方式有兩個(gè)揍诽,一個(gè)是按住esc
鍵,一個(gè)是按住ctrl+[
鍵栗竖。
手柄移動(dòng)
玩過電腦游戲的朋友們應(yīng)該都有這樣的經(jīng)歷暑脆,需要控制游戲人物上下左右移動(dòng),一般是 wasd
狐肢,vim 也一樣添吗,假設(shè)我們使用 vim 來閱讀源碼,這種場(chǎng)景一般會(huì)使用normal
模式处坪,在normal模式
下對(duì)應(yīng)上下左右的快捷鍵分別是kjhl
根资,這是使用 vim 時(shí)最基本的快捷鍵,是不是特別容易同窘?另外我們?cè)跒g覽代碼時(shí),下移一行的需求基本是最頻繁的部脚,所以這里猜測(cè) vim 把j
鍵用作下移想邦,另外j
鍵上有一個(gè)小突起特別適合快速起步,從這里看出 vim 的鍵設(shè)置其實(shí)是非常人性化的委刘。
砍瓜切菜
很多時(shí)候我們?cè)趯懲瓿醢娉绦蛏ッ唬鲎晕掖a review 時(shí),經(jīng)常會(huì)有刪除一行或者多行的需求锡移,如果我們使用notepad
或者sublime
類似的文本編輯器呕童,需要先選中多行然后按退格鍵做刪除,在使用 vim 時(shí)淆珊,我們只要保證我們?cè)?code>normal模式下夺饲,連續(xù)敲擊dd
鍵,即可刪除當(dāng)前光標(biāo)所處的行施符,d2d
即可刪除當(dāng)前行和其下一行往声,這樣簡(jiǎn)單推理dnd
就可以刪除從當(dāng)前行往下的n-1
行啦,是不是很方便很簡(jiǎn)單戳吝?
落地為安
在我們閱讀完代碼浩销,做了相應(yīng)刪除和編輯之后,最不能忘記的事情就是實(shí)時(shí)保存了听哭,不然遇到斷電或者系統(tǒng)崩潰就白瞎了慢洋,和其他編輯器使用meta+s
鍵保存不一樣塘雳,vim 需要進(jìn)入命令行模式,進(jìn)入命令模式的前提是處在normal
模式普筹,在normal
模式下敲擊:
粉捻,然后編輯器下方就會(huì)出現(xiàn)一個(gè)類似終端的小窗口,輸入w
即可保存斑芜,如果想要保存后立馬關(guān)閉當(dāng)前文檔肩刃,輸入x
或者wq
即可。
這樣我們就完成了 vim 三步走杏头,瀏覽-->編輯--->保存盈包,怎么樣,是不是就和玩了一個(gè)小游戲一局一般醇王,看起來難度也沒 90° 那么大嘛呢燥。
高級(jí)特性
上面一節(jié)我們講了我們平時(shí)使用文本編輯器的基本三步,現(xiàn)在我們來看看 vim 為什么被稱為編輯器之神寓娩,它到底有哪些奇淫技巧叛氨,操作如此之強(qiáng)。
移動(dòng)
在一般文本編輯器中移動(dòng)是一件非常痛苦的事情棘伴,比如上下左右這種最基本的移動(dòng)寞埠,我們要離開我們的打字區(qū)域,手指跑到鍵盤的右下角按上下左右鍵來移動(dòng)焊夸,這無疑會(huì)讓我們離開我們我們的舒適區(qū)仁连。
但是,在 vim 的normal模式
下移動(dòng)是一個(gè)非常有趣的事情阱穗,通過 vim 提供的預(yù)設(shè)快捷鍵饭冬,我們可以在舒適區(qū)快速方便的移動(dòng),完全停不下來揪阶。
在列出 vim 的移動(dòng)快捷鍵之前昌抠,我們先來普及一下幾個(gè)基本的概念:
-
層次
:字母-->單詞-->句子-->段落-->函數(shù)-->文檔; -
首尾
:?jiǎn)卧~首部-->單詞尾部-->行首-->行尾-->段落首部-->段落尾部-->文檔首部-->文檔尾部鲁僚;
與這些概念對(duì)應(yīng)的在 vim 中移動(dòng)的快捷鍵分別是:
- 字母級(jí)別移動(dòng):參閱小試牛刀中 vim 手柄的快捷鍵
上(k)下(j)左(h)右(l)
炊苫; - 單詞級(jí)別移動(dòng):下一個(gè)單詞首部(
w
),下一個(gè)單詞尾部(e
)蕴茴,上一個(gè)單詞頭部(b
)劝评,上一個(gè)單詞尾部(ge
); - 行級(jí)別移動(dòng):行首(
0
或者^
)倦淀、行尾($
)蒋畜; - 段落級(jí)別移動(dòng):段落首部(
{
),段落尾部(}
)撞叽; - 文檔級(jí)別移動(dòng):文檔頭部(
gg
)姻成,文檔尾部(G
)插龄;
編輯
刪除
刪除單詞以及以上層次一般是一個(gè)組合鍵:d+級(jí)別鍵
;
- 刪除字符:刪除光標(biāo)前字符(
X
)科展,刪除光標(biāo)后字符(x
)均牢; - 刪除單詞:刪除下一個(gè)單詞(
dw
),刪除前一個(gè)單詞(db
)才睹; - 刪除行:刪除當(dāng)前行
dd
徘跪,刪除當(dāng)前行和下一行(dj
),刪除當(dāng)前行和上一行(dk
)琅攘; - 刪除段落:刪除光標(biāo)后段落(
d}
)垮庐,刪除光標(biāo)前段落(d{
); - 刪除文檔:刪除光標(biāo)前文檔(
dgg
)坞琴,刪除光標(biāo)后文檔(dG
)哨查;
其他
- 撤銷:
u
(undo); - 重做:
ctrl+r
(redo)剧辐; - 復(fù)制:復(fù)制也類似刪除寒亥,是組合鍵,格式為:
y+級(jí)別鍵
(yank)荧关; - 粘貼:
p
和P
(paste)溉奕;
快速重復(fù)
動(dòng)作+次數(shù)+方向
在熟悉了以上瀏覽和編輯的大部分快捷鍵后,使用 vim 的快速重復(fù)模式可以加速你的操作羞酗。
比如瀏覽代碼時(shí)你想快速向下移動(dòng) 4 行腐宋,刪除時(shí)想快速向右刪除 3 個(gè)單詞,如果你只會(huì)上面的基礎(chǔ)快捷鍵檀轨,那么你還是得重復(fù)多次,對(duì)于追求高效編碼的你來說欺嗤,是不能接受的参萄。
vim 提供了一套模式:動(dòng)作+次數(shù)+方向
,其中動(dòng)作
可選煎饼,對(duì)于剛剛的需求來說讹挎,只需要使用4j
和d3w
即可完成需求,是不是非尺壕粒快捷筒溃,快來試試吧!
搜索/替換
一般我們?cè)诙ㄎ粏栴}時(shí)會(huì)使用搜索,在重構(gòu)時(shí)會(huì)使用到替換沾乘。
vim 也提供了強(qiáng)大的搜索/替換功能怜奖,并且支持正則搜索和正則替換,灰常強(qiáng)大翅阵。
使用 vim 的搜索和替換歪玲,我們需要從 vim 的normal
模式進(jìn)入到命令模式迁央,在normal
模式下按:
即可進(jìn)入命令行模式。
- 搜索:
/key
(向下搜索關(guān)鍵詞 key)或者?key
(向上搜索關(guān)鍵詞 key)滥崩; - 替換:
%s/source/dest/g
或者1,10s/source/dest
岖圈,其中%s
表示全文替換,1,10s
表示只對(duì) 1-10 行做替換钙皮,source
表示被替換的單詞蜂科,dest
表示要被替換的單詞,g
表示該行若命中多個(gè)關(guān)鍵詞則會(huì)都替換短条; - 正則替換:這算是 vim 替換里面比較高級(jí)的功能导匣,下面我們來演示一個(gè)例子,把文中的
morningking hello
都替換成hello morningking
慌烧,我們需要敲入:%s/\(hello\) \(morningking\)/\2 \1/g
逐抑,這里使用到了正則里面的捕獲分組,是不是很強(qiáng)大屹蚊?
文件操作
vim 也提供了文件操作厕氨,如保存,退出汹粤,放棄命斧,前提也是需要進(jìn)入命令行模式。
- 保存:
w
嘱兼; - 退出:
q
国葬; - 放棄:
q!
其中保存退出可以結(jié)合使用,如
wq
芹壕,當(dāng)然也可以使用快捷鍵x
一鍵保存退出
其他
限于篇幅汇四,以上列出了 vim 常用的高級(jí)特性,當(dāng)然踢涌,vim 的高級(jí)特性遠(yuǎn)不止如此通孽,比如還可以使用宏、折疊睁壁、選擇模式背苦、分屏、書簽潘明、緩沖區(qū)等行剂,不過由于不太常用,這里暫時(shí)先不一一列舉
本文內(nèi)容為轉(zhuǎn)載钳降,版權(quán)歸作者所有