用聰明的方式學習 Vim

2021-03-02 碼農有道
Vim 難學難用?但事實是,它依舊受許多程式設計師的歡迎。最近,在 GitHub 上便出現了一個叫做用聰明的方式學習 Vim 的項目,上線短短幾天時間,便已經斬獲 4600 星。用聰明的方式與Vim「交流」因此,作者將 Vim 命令的一般結構,分解成了一個簡單語法規則。這也是本教程中最為重要的一個章節——一旦了解了 Vim 命令類似語法的結構,就能跟它「暢談無阻」。按照作者的說法,「只需要知道一個語法規則」,就可以說Vim的語言了:Eat (verb) a donut (noun)Kick (verb) a ball (noun)現在,只需要使用基本的 Vim 動詞和名詞來增加詞彙量。Vim 的名詞和動詞這裡說到的Nouns,就是 Vim 中的一些動作,例如:h:左
j:下
k:上
l:右
w:移動到下個詞的開頭
}:跳到下一個段
$:移動到本行末尾以 h 操作符為例,Vim 中有16種,但只需要知道其中3種,便可以滿足80%的需求。y:複製
d:刪除文本,保存到register
c:刪除文本,保存到register,並開始「插入」模式OK,了解了「名詞」和「動詞」,現在便可以應用到「語法規則」中了:y$:把當前所有的東西,從當前位置拖拽至行末
dw:從當前位置刪除到下一個單詞的開頭
c}:將當前位置更改為此段末尾當然,類似這樣的組合,也接受數字作為其中的參數,例如:y2h:向左拉2個字符
d2w:刪除接下來的2個單詞
c2j:改變接下來的2行內容除此之外,行式操作(linewise operations)是文本編輯中的常見操作,因此,Vim 也允許你通過連續鍵入2次操作符來完成類似這樣的操作。比如,鍵入「dd」,刪除整行內容;鍵入「cc」,更改整行內容。可組合性和語法在討論 Vim 語法之後,便是 Vim 的可組合性(Composability)。可組合性意味著擁有一組通用命令,可以組合起來執行更複雜的命令。當與外部程序集成時,Vim 的可組合性的真正威力就顯現出來了。舉個例子,現在有一段「亂七八糟」的文字,如下所示:Id|Name|Cuteness
01|Puppy|Very
02|Kitten|Ok
03|Bunny|Ok現在需要將這些文字轉換成為表格形式,若是用 Vim 命令來實現這點可能會有一些困難,但是可以使用 column terminal 命令快速完成。將滑鼠指向「ID」,然後運行 !}column -t -s 「|」 ,就可以得到漂亮的表格了:Id   Name    Cuteness
01  Puppy    Very
02  Kitten    Ok
03  Bunny   Ok「!」是過濾操作符,「}」是名詞,過濾操作符接收了另一個參數,也就是一個終端命令,「column -t -s 「|」 」。簡而言之,經過這樣的一番操作後,便完成了文字表格化的任務。再例如,除了表格化之外,再篩選帶有「OK」的行,可以這樣做:!}column -t -s 「|」 | awk 『NR > 1 && /Ok/ {print $0}』02  Kitten  Ok
03  Bunny  Ok但作者也同時指出,剛開始學習、適應這種「Vim 語法」是需要一定時間,但只要熟練起來後,便可輕鬆駕馭。基於Vim語法的更多操作在介紹完 Vim 的語法規則後,便可以基於此來完成更多操作和任務。例如在本教程中的第五章,便介紹了「如何在文件中移動」。剛開始用鍵盤來完成這項任務,肯定是比較慢的,但作者認為:最基本的操作便是向左、向右、向上和向下移動一個字符:h   Left
j    Down
k   Up
l    RightW:移動到下一個單詞的開頭處
E:移動到下一個單詞的結尾處
B:移動到前一個單詞的開頭處
gE:移動到前一個單詞的結尾處0:移動到當前行的第一個字符處
^:移動到當前行第一個非空字符處
g_:移動到當前行最後一個非空字符處
$:移動到當前行最後一個字符處
n|:移動到當前行的第n列當然,用類似的Vim方式,還可以完成「段」級別、搜索、滾動、標記等一系列移動操作。此外,教程中還提供了許多其他操作的教程,例如「Insert Mode」、「Undo」等等。目前教程還在更新中,有興趣的讀者可以持續關注這份「聰明的Vim教程」。https://github.com/iggredible/Learn-Vim

推薦閱讀:

相關焦點

  • 用聰明的方式學習Vim|GitHub 2200星
    金磊 發自 凹非寺量子位 報導 | 公眾號 QbitAIVim 難學難用?但事實是,它依舊受許多程式設計師的歡迎。或許,只是你的「打開方式」不對。最近,在 GitHub 上便出現了一個叫做用聰明的方式學習Vim的項目,上線短短幾天時間,便已經斬獲2200星。那麼,如此學習Vim的方式,到底有多「聰明」?
  • VIM編輯器學習
    VIM學習方法本文引用地址:http://www.eepw.com.cn/article/151642.htm  Vim目前已經有類Unix版和Windows版,儘管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。
  • 遊戲夜讀|vim,vim,vim
    已經忘記第一次安裝vim是哪一年了,可能是幾年前;插件類的不算,去官網下載再安裝,這應該是第二次。歲月痕跡斑駁,心態還是沒有本質的變化,覺得這一類東西就是:酷。只是酷的東西,更需要時間和精力去營造合適的心情。而學習曲線這一類東西則只能是參考,基於興趣、剛需,再困難也能上。
  • Vim學習筆記整理
    e/E 下一個word/WORD尾;b/B回到上一個word/WORD開頭,可以理解為backword;word指的是以非空白符分割的單詞,WORD以空白符分割的單詞;7、行間搜索快速移動:使用f{char}可以移動到char字符上, t移動到char的前一個字符如果第一次沒搜到 ,可以用分號(;)/逗號(,)繼續搜該行下一個/上一個大寫的
  • 在windows上怎麼用vim
    windows  中怎麼安裝vim ,以及使用 vim 時會遇到的一些麻煩、 失靈現象。先baidu搜vim org進vim網站 下載gvim7.exe,並安裝agree,next,yes 直到完成。
  • vim命令使用總結
    vim 共有三種模式:命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;二. vim
  • Vim,牛逼
    用這三個單詞來讚美 Vim,一點都不為過。只不過,Vim 的學習曲線相當的大,這是一個連我都不得不承認的事實。就好像彈一把吉他,一開始學起來非常痛苦,簡直想摔了它,但學會後,就能感受到樂器的無限魅力,以及學妹崇拜的小眼神。
  • vim常用命令有哪些?Linux入門學習
    vim是一個文本編輯程序,沒有菜單,只有命令,且命令繁多。在運維培訓學習中,vim編輯器都有哪些知識點?有哪些命令需要掌握?(vsp)+文件名水平或垂直拆分窗口顯示兩個不同的文件退出分屏模式命令:wqall保存並退出所有屏幕命令:wq保存並退出光標所在的屏幕Ctrl+ww切換兩個屏幕 vim
  • Vim 起步的五個技巧
    Gedit 已經放在了我的快速啟動欄中,所以第一步就是移除這個快捷方式,然後替換成 Vim 的。為了更好的學習 Vim,我嘗試了很多。如果你也正想學習,以下列舉了一些作為推薦。Vimtutor通常如何開始學習最好就是使用應用本身。
  • Vim 編輯器的兼容模式
    : Himanshu Arora譯者: ch-cn目前,在我們講述 Vim[1] 的教程中,討論過編輯器的模式行Modeline功能以及怎樣用插件[2]來擴展 Vim 的功能集。不管怎樣,要記住這種模式下,Vim 並不能簡單等同 Vi - 此模式只是設定一些類似 Vi 編輯器工作方式的默認選項。不兼容模式 - 不用多說 - 使得 Vim 用起來跟 Vi 不兼容,也使得用戶可以用到它的所有增強、改善及特徵。怎麼啟用/禁用這些模式?
  • vim+py文件構造linux後門
    python後門,其實就是用python編寫的一個簡單的socket伺服器端。答案是可以使用,現如今的vim編輯器為了更好的支持python語言,默認是安裝了python擴展,通過vim的python擴展,也可以去啟動一個python程序。可通過「vim --version」查看是否已支持python擴展。
  • Linux下vim編輯器的使用小技巧
    如配置文件的更改、環境變量的設置等等基本上都是在這個vim編輯器上完成。所以這是Linux系統管理員最常用的一個工具。不過這個工具雖然小,但是其有很多的實用小技巧。有些系統管理員可能並不知道。在此筆者就把這些技巧共享出來,大家若覺得有用,不妨在工作中用用看。本文引用地址:http://www.eepw.com.cn/article/148588.htm一、備份個性化配置文件。
  • linux中的vim命令
    如何查看命令的幫助文檔,三種方式:內置命令:help ls外部命令:ls --help,簡單的幫助文檔手冊man ls, 通過使用man查看詳細的幫助內容vim和vi命令本質上就是一個命令,這個命令是在linux命令中專門用來編輯文本文件的
  • 聰明的人用聰明的方式學英語
    聰明的人用聰明的方式學習。
  • Vim 自動補全神器:YouCompleteMe
    在Vim被程式設計師所使用後,其慢慢的被肩負了與IDE一樣的工作,文本自動補全(ie,acp,omnicppcompleter),代碼檢查(Syntastic)等等工作。針對文本自動補全這個功能來說,主要有兩種實現方式。
  • Linux系列教程(十)——Linux文本編輯器vim
    當我們使用的多了,會不知不覺的記住這些命令,這才是正確的學習方法。Linux命令有很多,如果初學者就想全部記住這些命令的詳細格式,會對我們產生很大的學習挫敗性,還沒記完這些命令,或許你已經喪失了學習Linux的熱情了。結束了Linux常用命令的學習,接下來我們學習Linux最常用的文本編輯器命令 vim。
  • linux-vi或vim命令
    vi編輯中中文亂碼,修改方法:set encoding=utf-8 或set encoding=utf8高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的::qx 開始記錄宏,並將結果存入寄存器xq 退出記錄模式@x 播放記錄在x寄存器中的宏命令
  • 編輯神器Vim新教程出爐,GitHub3400星,複雜命令輕鬆搞定
    機器之心報導編輯:陳萍、杜偉用聰明的方式打開 Vim,提高編輯效率。提起文本編輯器,你一定會想到編輯器之神 Vim。作為一個快 30 歲的「老牌」編輯器,直到現在還很受歡迎。如果沒有有效的學習方法,操作起來很不方便,只有做到非常熟練才能感受到它帶來的快捷。下圖展示了 Vim 中關於刪除、複製與粘貼的部分命令:其實 Vim 的操作命令還遠不如此,如果沒有很好的學習方法,可能很難使用這種編輯器。那麼有沒有更好的方式來進行 Vim 學習呢?
  • 在VIM中實現對嵌入式軟體的調試
    目標板上的gdb服務端gdbserver與主機上的gdb調試器的通信方式主要有兩種:使用串口通信的「交叉串行連接」和使用網口的「TCP/IP」聯機。鑑於PC端的方便性以及串口資源有限,尤其是現在的筆記本電腦甚至已經不存在串口,所以,大多採用TCP/IP方式,即PC主機與目標板通過網線直連或者PC機與目標板通過路由或者hub等組成區域網通信。這種調試模式如圖1所示。
  • 如何在使用 Vim 時訪問/查看 Python 幫助 | Linux 中國
    我用它編寫 Python 代碼。有沒有辦法在 vim 中查看 Python 文檔而無需訪問網際網路?假設我的光標在 Python 的 print 關鍵字下,然後按下 F1,我想查看關鍵字 print 的幫助。如何在 vim 中顯示 python help() ?如何在不離開 vim 的情況下調用 pydoc3/pydoc 尋求幫助?