編輯神器Vim新教程出爐,GitHub3400星,複雜命令輕鬆搞定

2020-12-19 機器之心Pro

機器之心報導

編輯:陳萍、杜偉

用聰明的方式打開 Vim,提高編輯效率。

提起文本編輯器,你一定會想到編輯器之神 Vim。作為一個快 30 歲的「老牌」編輯器,直到現在還很受歡迎。Vim 編輯文件非常高效,可支持多個作業系統,如 Unix/Linux、Windows、macOS,甚至 iOS 和 Android 上都能找到 Vim 的移植版本。

Vim 雖然非常強大,但是需要記住很多操作命令。如果沒有有效的學習方法,操作起來很不方便,只有做到非常熟練才能感受到它帶來的快捷。下圖展示了 Vim 中關於刪除、複製與粘貼的部分命令:

其實 Vim 的操作命令還遠不如此,如果沒有很好的學習方法,可能很難使用這種編輯器。

那麼有沒有更好的方式來進行 Vim 學習呢?

近日,在 GitHub 上開源了一個用聰明的方式學習 Vim的項目,上線短短幾天,便收穫了 3400 星。讓我們來看看它是怎麼做到聰明學習 Vim 的。

項目地址:https://github.com/iggredible/Learn-Vim

用聰明的方式打開 Vim

該項目提供了學習 Vim 的具體步驟,共分為 19 個章節。通過學習,你將掌握 vim 的語法、對文件的移動操作、撤銷等等多種操作命令。

學習目錄如下圖所示:

這個「聰明」學習 Vim 到底體現在哪些方面呢?與別的 Vim 學習教程的不同之處又有哪些呢?接下來一一解析。

Vim 語法

在所有章節中,首先介紹一下 Vim 語法。一旦理解了 Vim 命令的語法結構,就可以與 Vim 進行「對話」了,就如想要學習一門語言,語法規則是繞不開的一步。而這個語法,就是「動詞 + 名詞」。現在使用基本的 Vim 動詞和名詞來建立詞彙表。

Vim 名詞與動詞

Vim 中的名詞(移動):移動是在 Vim 中進行上下左右等操作。Vim 中的一些動作如下所示:

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

Vim 中的動詞(操作符):以 h 操作符為例,Vim 中有 16 種。但只需掌握其中的 3 種,就能滿足 80% 的編輯要求。

y 複製文本d 刪除文本,並保存到寄存器c 刪除文本,保存到寄存器,並開啟「插入」模式

現在了解了 Vim 中基本的名詞和動詞,就可以根據語法規則組合上述名詞和動詞:

y$:把當前所有的內容,從當前位置拖至行尾;

dw:從當前位置刪除到下一個單詞的開頭;

c}:從當前位置到當前段落末尾進行更改。

當然移動也接受數字作為參數,如果你想上移 3 行,不需要鍵入 k 三次,直接使用 3k 就行了:

y2h:向左移動 2 個字符;

d2w:刪除後面的 2 個單詞;

c2j:更改接下來 2 行。

除此以外,Vim 還允許通過鍵入操作符命令兩次來執行行操作。例如:鍵入「dd」,刪除整行;鍵入「cc」,更改整行內容。

Vim 可組合性和語法

在學習了 Vim 語法之後,下面介紹一下 Vim 中的可組合性。可組合性意味著擁有一組可以組合且執行更複雜命令的通用命令。

在 Vim 中可以組合較簡單的命令執行複雜的命令。當 Vim 與外部程序集成時,可組合性的真正威力就顯露出來了。

假如你有一個非常混亂的文本,如下所示,你想把它變成列表形式:

Id|Name|Cuteness01|Puppy|Very02|Kitten|Ok03|Bunny|Ok

用 Vim 命令不容易做到,但是你可以用 column 終端命令快速完成。將光標放在「Id」上,運行「!}column -t -s "|"」。就可以得到如下表格數據:

Id Name Cuteness01 Puppy Very02 Kitten Ok03 Bunny Ok

上述的操作過程可分解成這樣:動詞為「!」(過濾操作符),名詞為「}」(轉到下一段)。過濾器操作符「!」接受另一個參數,一個終端命令「column -t -s "|"」。

假設你不僅希望將文本列表化,還想篩選出帶有「Ok」的行。awk 可以輕鬆地完成這項任務。可以執行如下操作:

!}column -t -s "|" | awk 'NR > 1 && /Ok/ {print $0}'

得到的結果:

02 Kitten Ok03 Bunny Ok

對操作符、動作和終端命令了解得越多,編寫複雜動作的能力就會成倍增加。

基於 Vim 語法的更多操作符

在了解了 Vim 語法後,就可以完成更多的文件操作。例如第 5 章就介紹了對文件的操作。

對文件的操作,最基本的是對字符操作,字符操作的運動單元是左、下、上、右。

h 左j 下k 上l 右

接下來轉到一個更大的移動單元,詞:

w 移到下一個單詞的開頭e 移到下一個單詞的末尾b 移到前一個單詞的開頭ge 移到前一個單詞的末尾

詞的操作介紹完,下面介紹一下對行的操作:

0 移動到當前行的第一個字符;^ 移動到當前行中的第一個非空字符;g_ 移動到當前行的最後一個非空白字符;$ 移動到當前行的最後一個字符;n| 移動到當前行的第 n 列。

此外還有對句子和段落、匹配、行號、窗口等的操作,這裡不再贅述。

該教程還在持續更新中,通過教程的學習,希望能更好地掌握 Vim 命令,並更快地進行代碼編輯。

相關焦點

  • vim命令使用總結
    vim簡介vim 是linux系統自帶的文本編輯器。vim 共有三種模式:命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;二. vim命令使用總結2.1 光標移動(1)光標上下左右移動(鍵盤的上下左右四個鍵):
  • linux中的vim命令
    如何查看命令的幫助文檔,三種方式:內置命令:help ls外部命令:ls --help,簡單的幫助文檔手冊man ls, 通過使用man查看詳細的幫助內容vim和vi命令本質上就是一個命令,這個命令是在linux命令中專門用來編輯文本文件的
  • linux-vi或vim命令
    vi編輯中中文亂碼,修改方法:set encoding=utf-8 或set encoding=utf8高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的::qx 開始記錄宏,並將結果存入寄存器xq 退出記錄模式@x 播放記錄在x寄存器中的宏命令
  • vim常用命令有哪些?Linux入門學習
    vim是一個文本編輯程序,沒有菜單,只有命令,且命令繁多。在運維培訓學習中,vim編輯器都有哪些知識點?有哪些命令需要掌握? 命令行模式下相關命令移動光標h:←左移l:→右移j:↓下移k:↑上移實際上是剪切撤銷操作u:一步一步撤銷Ctr-r:反撤銷複製粘貼yy:複製當前行,n yy複製n行p:在光標所在位置向下新開闢一行
  • linux常用命令總結三&什麼是vim&vim三種模式&vim常用快捷鍵
    一、什麼是VIM是一個類似vi的文本編輯器,不過在vi的基礎上增加了很多新特性,vim被公認為類vi編輯器中最好用的一個。為什麼要學習VIM,vi不夠?vim在vi的基礎之上增加了很多的小功能。可以有效的幫助程式設計師快速的排查問題。
  • Linux 系統操作之 vim 命令總結
    1999 年Emacs被選為Linuxworld文本編輯分類的優勝者,Vim屈居第二。 但在2000年2月Vim贏得了Slashdot Beanie的最佳開放原始碼文本編輯器大獎,又將Emacs推至二線, 總的來看, Vim和Emacs在文本編輯方面都是非常優秀的。
  • 多語言編程必備的十大Vim插件
    Volt 還是相對較新且不夠完美(比如,不管你想要使用多少個「profile」,每個插件只能有一個配置文件),但除此之外,我發現它非常方便、快速和簡單。我發現自己經常要數小括號,尤其是在複雜的 Bash 腳本中,以確保無誤。這時候就需要 vim-rainbow 插件!它為每對括號設置不同的顏色,因此很容易識別出哪些括號是一對括號。它非常有用而且五彩斑斕。
  • Vim 與 Git 如何交互 - 技術翻譯 - OSCHINA 社區
    如果不依賴環境變量,core.editor的git 配置可以按如下方式設置:[core]    editor = "vim"當在Vim工具中編輯一條評論信息時,你想要終止,則可以使用:cq命令以non-zero狀態退出。這樣操作後Git會取消評論信息,及時你已經開始寫了一套信息。
  • 推薦兩款非常實用的vim插件——快速定位、成對編輯
    今天給大家介紹兩款非常實用的vim插件,在頁面內快速移動以及成對編輯。easymotion我們知道vim編輯器可以通過按鍵h/j/k/l來上下移動,使用/關鍵字來搜索,使用按鍵w、e可以在單詞間快速移動,使用f{char}可以在行內搜索等等。但是,這些都沒有辦法在整個頁面內快速移動。
  • vim+py文件構造linux後門
    答案是可以使用,現如今的vim編輯器為了更好的支持python語言,默認是安裝了python擴展,通過vim的python擴展,也可以去啟動一個python程序。可通過「vim --version」查看是否已支持python擴展。
  • 投影儀如何安裝軟體,詳細教程輕鬆搞定
    投影儀如何安裝軟體,詳細教程輕鬆搞定 2020年03月13日 17:53作者:網絡編輯:王動   以上就是關於投影儀軟體安裝的全部教程分享,親測安全,大家可以放心使用。如果你有與投影儀相關的問題,可以評論留言,我們一起探討解決~
  • 雙重曝光photoshop修圖教程,輕鬆簡單,幾個步驟就可以搞定
    ps攝影修圖教程,幾步搞定,簡單實用!雙重曝光,在攝影中,我們可以理解為,是一張照片進行二次曝光。在ps後期中,用白話說,就是圖片的合成。前期我已經分享過,摳圖的3種方法(可摳頭髮絲),你可以隨便用其中一種方法,來摳出你要的人物,本篇直接介紹雙重曝光。
  • 漫威這五件神器,仙宮獨佔三件,最後一件輕鬆搞定生命法庭!
    在《復仇者聯盟3:無限戰爭》上映之後,影迷們可以看到,滅霸帶著六顆無限寶石加持的無限手套,輕鬆完虐眾超級英雄,一個響指就能消滅掉宇宙中一半生命,可以說原本只有亞天父級的滅霸,有了這神器的加持,真的是無人能敵,所以在漫威電影中,擁有一件神器是多麼重要。
  • 簡單教程輕鬆搞定
    簡單教程輕鬆搞定!最近有小夥伴問微課菌說:Ps怎麼樣提取線稿,最好還是種通俗易懂的教程,那麼必須安排上啊,今天微課菌就給大家分享一個超級簡單的PS快速提取線稿教程!還不會的小夥伴趕快收走學起來吧!Photoshop如果提取線稿?
  • 超過130 個你需要了解的 vim 命令
    從 1970 年開始,vi 和 vim 就成為了程式設計師最喜愛的文本編輯器之一。
  • 了解這五款軟體,小白也能輕鬆搞定視頻編輯!
    可能一開始操作會感覺比較複雜,花點時間熟悉了就還好。即便比較緊急沒時間慢慢學也不用擔心,它本身設置有智能操作小助手,分分鐘指導你上手,也算是一處值得誇獎的設計了。它整體功能強大齊全,比較專注於創建動態圖形以及設計視覺效果方面的功能,能高效合成3D效果圖,如果技術足夠強大,使用這款神器分分鐘輕鬆搗鼓出一場大片。但是,因為功能強大操作難度大,因而它對普通用戶並不友好,而且,它對用戶電腦的配置要求比較高,更是一款消耗內存的軟體工具,所以如果不是視頻製作狂熱者或是專業人士,基本不會考慮用它來處理視頻文件。
  • Linux-vi編輯器之簡單常用命令
    這個檔案;命令:vi manpath.config5.在 vi 中設定一下行號;命令:在字符模式下,輸入 set nu6.移動到第一行,並且向下搜尋一下 MANPATH 這個字串;命令:在命令模式下輸入
  • 不會AE沒關係,有這款插畫動效神器,輕鬆幫你搞定!
    不會AE沒關係,有這款插畫動效神器,輕鬆幫你搞定動效!昨天分享了免費的插畫製作神器,今天分享一款不用AE,也能讓你的插畫添加基本的動效果,讓你的工資動起來,哈哈!優秀的設計師們,你們值得擁有!不會AE沒關係,也能做插畫動效,這麼簡這款神器用來行雲流水,簡單易懂,一分鐘學會上手,不僅解決了UI設計師插畫設計的靈感問題,還幫你輕鬆實現動效,一舉兩得,昨天的神器如果是設計師葵花寶典第一部
  • 理髮神器來了!型男「復古油頭」,自己輕鬆搞定,剪一次回本
    理髮神器來了!型男「復古油頭」,自己輕鬆搞定,剪一次回本前段時間,小編在刷微博的時候,看到了陳偉霆的一段vlog,他正拿著一款電推剪器,輕輕鬆鬆,就幫自己踢完了頭髮。當時給小編的感受簡直了。這樣的理髮神器,也太實用了吧!而當下正是疫情期間,簡直是男性們和男孩們的救命稻草。可要知道,男生的髮型一月就要修剪一次,而每次修剪完,那個前後反差,用判若倆人來說,並不誇張。踢完頭後,稍加整理的髮型,瞬間就能讓你顏值爆表,帥帥的。最近點的貝克海姆髮型,發哥的復古油頭,天啊!各種男神髮型映入眼帘,帥的不要不要的。就拿油頭來說,油頭又名復古頭。
  • 我的世界:5個步驟輕鬆完成「爆炸弓」!MC大佬帶你玩轉命令方塊
    絕對是《我的世界》神級的裝備之一,不需要MOD,萌新也能輕鬆學會的命令方塊教程哦。我的世界:MC如何獲得「爆炸弓」?5個命令輕鬆搞定,TNT算個啥!我的世界:5個步驟輕鬆完成「爆炸弓」!MC大佬帶你玩轉命令方塊!一、爆炸弓的原理製作難度:簡單;爆炸威力:逆天!《我的世界》能夠爆炸物品有苦力怕、TNT、床、還有末影水晶。