Vim入門指南

姓名:張志文 學(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 年的咖啡壓壓驚 ??舀凛。

image

不過珊蟀,毛主席都說過,任何敵人都是紙老虎覆糟,所以我們對(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+[鍵栗竖。

image

手柄移動(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í)是非常人性化的委刘。

image

砍瓜切菜

很多時(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)荧关;
  • 粘貼:pP(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ì)于剛剛的需求來說讹挎,只需要使用4jd3w即可完成需求,是不是非尺壕粒快捷筒溃,快來試試吧!

搜索/替換

一般我們?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)歸作者所有

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厚宰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子牲阁,更是在濱河造成了極大的恐慌固阁,老刑警劉巖壤躲,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異备燃,居然都是意外死亡碉克,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門并齐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漏麦,“玉大人,你說我怎么就攤上這事况褪∷赫辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵测垛,是天一觀的道長(zhǎng)捏膨。 經(jīng)常有香客問我,道長(zhǎng)食侮,這世上最難降的妖魔是什么号涯? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮锯七,結(jié)果婚禮上链快,老公的妹妹穿的比我還像新娘。我一直安慰自己眉尸,他們只是感情好域蜗,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著噪猾,像睡著了一般霉祸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袱蜡,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天脉执,我揣著相機(jī)與錄音,去河邊找鬼戒劫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛婆廊,可吹牛的內(nèi)容都是我干的迅细。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼淘邻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼茵典!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宾舅,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤统阿,失蹤者是張志新(化名)和其女友劉穎彩倚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扶平,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帆离,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了结澄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哥谷。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖麻献,靈堂內(nèi)的尸體忽然破棺而出们妥,到底是詐尸還是另有隱情,我是刑警寧澤勉吻,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布监婶,位于F島的核電站,受9級(jí)特大地震影響齿桃,放射性物質(zhì)發(fā)生泄漏惑惶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一源譬、第九天 我趴在偏房一處隱蔽的房頂上張望集惋。 院中可真熱鬧,春花似錦踩娘、人聲如沸刮刑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雷绢。三九已至,卻和暖如春理卑,著一層夾襖步出監(jiān)牢的瞬間翘紊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工藐唠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帆疟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓宇立,卻偏偏與公主長(zhǎng)得像踪宠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妈嘹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 初衷 俗話說工欲善其事柳琢,必先利其器,對(duì)于程序員來說,如果要高效的編碼柬脸,那么掌握某類文本編輯器的快捷鍵是非常有必要的...
    morning_king閱讀 634評(píng)論 2 11
  • 原文:https://www.cxyquan.com/1287.html 0. 前言 0.1 簡(jiǎn)介 vim 被譽(yù)為...
    凱钏ィ看世界閱讀 535評(píng)論 0 0
  • vi的基本概念 三種狀態(tài):命令模式(command mode)、插入模式(Insert mode)和底行模式(la...
    mihope閱讀 599評(píng)論 0 50
  • 曾經(jīng)在思科的工廠測(cè)試系統(tǒng)`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超過2年半倒堕,現(xiàn)在...
    戈多在地獄閱讀 1,785評(píng)論 1 13
  • 李瀟南閱讀 562評(píng)論 0 0