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

2021-01-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寄存器中的宏命令
  • Linux 下 非常強大的Vim命令合集詳解
    啟動vim 在命令行窗口中輸入以下命令即可 vim 直接啟動vim vim filename 打開vim並創建名為filename的文件 文件命令 打開單個文件 vim file 同時打開多個文件 vim file1 file2 file3 ...
  • vim快捷鍵收藏版
    vim和vscode 到底誰更好用,大家爭得不可開交,然後我就在vscode裡面裝了一個vim插件,完美得解決了這個問題,用完之後覺得真香,所以我就整理一份終端命令的快捷鍵,所以大家趕緊收藏起來吧。命令模式:在正常模式中,按下:(英文冒號)鍵,會進入命令模式。在命令模式中可以執行一些輸入並執行一些vim或插件提供的指令,就像在shell裡一樣。這些指令包括設置環境、文件操作、調用某個功能等等。常用的命令有:q(退出)、q!(強制退出)、w(保存)、wq(保存並退出)。
  • 學會這21條,你離 Vim 大神就不遠了!
    打開文件# 打開單個文件vim file    # 同時打開多個文件vim file1 file2..  # 在vim窗口中打開一個新文件:open [file]       【舉個例子】# 當前打開1.txt,做了一些編輯沒保存:open!
  • @程式設計師,不容錯過的 Vim 實用技巧請查收!
    作者 | Hillel Wayne譯者 | 彎月,責編 | 屠敏以下為譯文:我使用Vim已經8年多了,但至今仍然可以發現新的技巧。通常這算得上是一件好事。然而,在我看來,不斷發現新事物也許是失敗之處,因為你很難知道Vim還有哪些功能。雖然人們經常談論模態編輯或文本對象的美感,但我認為這並不是Vim的本質。
  • 開發者的實用 Vim 插件(一) - OSCHINA - 中文開源技術交流社區
    特別是對於剛剛使用 Vim 或者使用 Vim 做開發的的軟體開發者來說,我們將在本教程中討論一些非常有用的 Vim 插件,具體請看例示。請注意:本教程中列舉的所有例示、命令和說明都是在 Ubuntu 16.04 環境下進行測試的,並且,我們使用的 Vim 版本是 7.4。插件安裝設置這是為新用戶準備的,假設他們不知道如何安裝 Vim 插件。
  • 超過130 個你需要了解的 vim 命令
    從 1970 年開始,vi 和 vim 就成為了程式設計師最喜愛的文本編輯器之一。
  • Linux 命令行下的好東西
    就這個角度而言絕大多數 Linux 命令行的推廣簡直是爛透了。繁多 Linux 有用極了的命令行工具就靜靜的躺在你發行版默認安裝的包裹裡,很多時候只有當你碰到什麼問題的時候網上搜一圈才能知道。更蛋疼的是這裡面很多東西你一旦知道了就會想我靠原來沒這個到底是怎麼過的下去。所以這裡我會列出一些我用過的一些,大部分發行版默認就有,或者能用包裹管理工具輕鬆獲取的東西。
  • Linux-vi編輯器之簡單常用命令
    中設定一下行號;命令:在字符模式下,輸入 set nu6.移動到第一行,並且向下搜尋一下 MANPATH 這個字串;命令:在命令模式下輸入gg或1G;然後輸入/MANPATH7.我要複製 51 到 60 行這十行的內容,並且貼到最後一行之後;命令:先定位到51行,命令模式下輸入10yy,在定位到最後一行輸入命令p10. 刪除 11 到 30 行之間的 20 行;命令:將光標定位到11行,然後命令模式輸入20dd11.
  • 簡單教程輕鬆搞定
    簡單教程輕鬆搞定!最近有小夥伴問微課菌說:Ps怎麼樣提取線稿,最好還是種通俗易懂的教程,那麼必須安排上啊,今天微課菌就給大家分享一個超級簡單的PS快速提取線稿教程!還不會的小夥伴趕快收走學起來吧!Photoshop如果提取線稿?
  • 不用PS 小白也能輕鬆搞定摳圖 免費智能批量在線摳圖教程 阿里出品!
    不過,雖然是AI智能摳圖工具,但也有一些缺點,目前該工具主要擅長 純色背景圖片處理、背景單純圖片、主題和背景反差較大的圖片,對於一些比較複雜背景的圖片,智能摳圖效果相對一般,需要去手動繼續優化。
  • 宅在家也可以剪髮,教你剪「齊肩短髮」的教程,一分鐘輕鬆搞定!
    教你自己在家剪「齊肩短髮」的教程,一分鐘輕鬆搞定!在聊剪短髮教程之前,我們先來看看女明星們的齊肩短髮吧,頭髮長度是剛剛好,很好打理也很時髦的,所以想要剪短髮的小姐姐 們,選這款齊肩長度的短髮再適合不過, 古力娜扎就是剪了短髮之後,氣質一下子就提升起來,辨識度也變高,人氣也跟著提升趙麗穎是典型的圓臉型,剪了齊肩短髮之後,氣質方面就更加的好了,搭配有層次感的劉海設計
  • 自從用上命令行神器「thefuck」, 再也不用擔心我敲錯命令了
    有位名為 @liamosaur 的哥們就忍不住發出了憤怒的吼聲並且付諸實踐,每天都要罵他的終端幾百遍啊幾百遍: 受此啟發, 一位名為 Vladimir Iakovlev 程式設計師和他的 90 位憤怒的小夥伴們打造出了一個名為 「thefuck」 的神器!
  • 理髮神器來了!型男「復古油頭」,自己輕鬆搞定,剪一次回本
    理髮神器來了!型男「復古油頭」,自己輕鬆搞定,剪一次回本前段時間,小編在刷微博的時候,看到了陳偉霆的一段vlog,他正拿著一款電推剪器,輕輕鬆鬆,就幫自己踢完了頭髮。當時給小編的感受簡直了。這樣的理髮神器,也太實用了吧!而當下正是疫情期間,簡直是男性們和男孩們的救命稻草。可要知道,男生的髮型一月就要修剪一次,而每次修剪完,那個前後反差,用判若倆人來說,並不誇張。踢完頭後,稍加整理的髮型,瞬間就能讓你顏值爆表,帥帥的。最近點的貝克海姆髮型,發哥的復古油頭,天啊!各種男神髮型映入眼帘,帥的不要不要的。就拿油頭來說,油頭又名復古頭。
  • linux常用命令總結
    1 VIM工作模式命令模式:又稱一般模式編輯模式:又稱底行模式,命令行模式2 插入命令(1個)3 定位命令(3主2輔)4 保存和退出命令(2個)『u』鍵恢復(命令模式下)常用操作:① 刪除光標所在的行1:進入命令模式2:dd②對一般文本進行編輯
  • 【手機後期】一個濾鏡輕鬆搞定港風色調!
    最近很多港風后期色調開始流行了起來攝影君決定用MIX這款APP中的電影色濾鏡c105教大家一鏡搞定所有的港風場景
  • 用好數學工具——幾何畫板,輕鬆作出複雜幾何圖形
    幾何畫板是一個很神奇的繪圖工具,所有數學教材中的圖形都能運用幾何畫板輕而易舉的畫出來,還可以複製到文檔編輯軟體(比如Word、WPS)中,幾何畫板提供了一個十分理想的「做數學」的環境,完全可以利用它來進行數學實驗。
  • 用這個神器,3分鐘輕鬆搞定PDF文檔編輯!
    往期推薦的基本是PDF文檔的轉換工具,有Windows軟體和在線處理網站等,有關PDF文檔編輯的,只有一個在線編輯PDF文檔的網站;今天要給大家推薦的,是一款Windows電腦端的PDF文檔編輯軟體——傲軟PDF編輯是一款專業的PDF閱讀編輯工具,適用於Windows/mac系統,不僅支持打開、查看PDF文件,也支持對PDF進行編輯,例如修改/添加文字、圖片、注釋