<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用聰明的方式學(xué)習(xí)Vim,不再死記硬背,復(fù)雜命令一學(xué)就會 | GitHub 2200星

          共 2432字,需瀏覽 5分鐘

           ·

          2020-09-03 11:43

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”

          重磅干貨,第一時間送達(dá)

          來源:量子位?

          Vim 難學(xué)難用?但事實(shí)是,它依舊受許多程序員的歡迎。

          或許,只是你的「打開方式」不對。

          最近,在 GitHub 上便出現(xiàn)了一個叫做用聰明的方式學(xué)習(xí)Vim的項目,上線短短幾天時間,便已經(jīng)斬獲2200星

          那么,如此學(xué)習(xí)Vim的方式,到底有多「聰明」?

          用聰明的方式與Vim「交流」

          很多人可能會被 Vim 命令的復(fù)雜性嚇到。

          因此,作者將 Vim 命令的一般結(jié)構(gòu),分解成了一個簡單語法規(guī)則。

          這也是本教程中最為重要的一個章節(jié)——一旦了解了 Vim 命令類似語法的結(jié)構(gòu),就能跟它「暢談無阻」。

          按照作者的說法,「只需要知道一個語法規(guī)則」,就可以說Vim的語言了:

          verb + noun

          如果拿英文短句做類比,就例如:

          Eat (verb) a donut (noun)

          Kick (verb) a ball (noun)

          現(xiàn)在,只需要使用基本的 Vim 動詞和名詞來增加詞匯量。

          Vim 的名詞和動詞

          這里說到的Nouns,就是 Vim 中的一些動作,例如:

          h:左
          j:下
          k:上
          l:右
          w:移動到下個詞的開頭
          }:跳到下一個段
          $:移動到本行末尾

          而 Vim 中的 Verbs,就相當(dāng)于操作符。

          以 h 操作符為例,Vim 中有16種,但只需要知道其中3種,便可以滿足80%的需求。

          y:復(fù)制
          d:刪除文本,保存到register
          c:刪除文本,保存到register,并開始「插入」模式

          OK,了解了「名詞」和「動詞」,現(xiàn)在便可以應(yīng)用到「語法規(guī)則」中了:

          y$:把當(dāng)前所有的東西,從當(dāng)前位置拖拽至行末
          dw:從當(dāng)前位置刪除到下一個單詞的開頭
          c}:將當(dāng)前位置更改為此段末尾

          當(dāng)然,類似這樣的組合,也接受數(shù)字作為其中的參數(shù),例如:

          y2h:向左拉2個字符
          d2w:刪除接下來的2個單詞
          c2j:改變接下來的2行內(nèi)容

          除此之外,行式操作(linewise operations)是文本編輯中的常見操作,因此,Vim 也允許你通過連續(xù)鍵入2次操作符來完成類似這樣的操作。

          比如,鍵入「dd」,刪除整行內(nèi)容;鍵入「cc」,更改整行內(nèi)容。

          可組合性和語法

          在討論 Vim 語法之后,便是 Vim 的可組合性(Composability)。

          可組合性意味著擁有一組通用命令,可以組合起來執(zhí)行更復(fù)雜的命令。當(dāng)與外部程序集成時,Vim 的可組合性的真正威力就顯現(xiàn)出來了。

          舉個例子,現(xiàn)在有一段「亂七八糟」的文字,如下所示:

          Id|Name|Cuteness
          01|Puppy|Very
          02|Kitten|Ok
          03|Bunny|Ok

          現(xiàn)在需要將這些文字轉(zhuǎn)換成為表格形式,若是用 Vim 命令來實(shí)現(xiàn)這點(diǎn)可能會有一些困難,但是可以使用 column terminal 命令快速完成。

          將鼠標(biāo)指向「ID」,然后運(yùn)行 !}column -t -s “|” ,就可以得到漂亮的表格了:

          Id ? Name ? ?Cuteness
          01 ?Puppy ? ?Very
          02 ?Kitten? ? Ok
          03 ?Bunny? ?Ok

          回過頭來看下剛才的命令。

          !」是過濾操作符,「}」是名詞,過濾操作符接收了另一個參數(shù),也就是一個終端命令,「column -t -s “|” 」。

          簡而言之,經(jīng)過這樣的一番操作后,便完成了文字表格化的任務(wù)。

          再例如,除了表格化之外,再篩選帶有「OK」的行,可以這樣做:

          !}column -t -s “|” | awk ‘NR > 1 && /Ok/ {print $0}’

          得到的結(jié)果便是:

          02 ?Kitten ?Ok
          03 ?Bunny ?Ok

          這就是一種與 Vim「交流」的聰明方式。

          但作者也同時指出,剛開始學(xué)習(xí)、適應(yīng)這種「Vim 語法」是需要一定時間,但只要熟練起來后,便可輕松駕馭。

          基于Vim語法的更多操作

          在介紹完 Vim 的語法規(guī)則后,便可以基于此來完成更多操作和任務(wù)。

          例如在本教程中的第五章,便介紹了「如何在文件中移動」。

          剛開始用鍵盤來完成這項任務(wù),肯定是比較慢的,但作者認(rèn)為:

          只要你把這個方法熟悉起來,要比用鼠標(biāo)還要快。

          最基本的操作便是向左、向右、向上和向下移動一個字符:

          h ? Left
          j ? ?Down
          k ? Up
          l ? ?Right

          在字符之后,便是以文字為單元的移動。

          W:移動到下一個單詞的開頭處
          E:移動到下一個單詞的結(jié)尾處
          B:移動到前一個單詞的開頭處
          gE:移動到前一個單詞的結(jié)尾處

          接下來是以「行」為單位的移動:

          0:移動到當(dāng)前行的第一個字符處
          ^:移動到當(dāng)前行第一個非空字符處
          g_:移動到當(dāng)前行最后一個非空字符處
          $:移動到當(dāng)前行最后一個字符處
          n|:移動到當(dāng)前行的第n列

          當(dāng)然,用類似的Vim方式,還可以完成「段」級別、搜索、滾動、標(biāo)記等一系列移動操作。

          此外,教程中還提供了許多其他操作的教程,例如「Insert Mode」、「Undo」等等。

          目前教程還在更新中,有興趣的讀者可以持續(xù)關(guān)注這份「聰明的Vim教程」。

          傳送門:

          https://github.com/iggredible/Learn-Vim

          下載1:動手學(xué)深度學(xué)習(xí)


          AI算法與圖像處公眾號后臺回復(fù):動手學(xué)深度學(xué)習(xí),即可下載547頁《動手學(xué)深度學(xué)習(xí)》電子書和源碼。該書是面向中文讀者的能運(yùn)行、可討論的深度學(xué)習(xí)教科書,它將文字、公式、圖像、代碼和運(yùn)行結(jié)果結(jié)合在一起。本書將全面介紹深度學(xué)習(xí)從模型構(gòu)造到模型訓(xùn)練,以及它們在計算機(jī)視覺和自然語言處理中的應(yīng)用。



          下載2
          AI算法與圖像處公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項目20講,即可下載20個有趣的OpenCV實(shí)戰(zhàn)項目
          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


          瀏覽 57
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩电影精品 | 一级成人片 | 午夜性福利视频 | 亚洲成人av一区二区三区 | 天天干大片 |