來源:Python程式員
ID:pythonbuluo
vim具有自定義配色方案,語法高亮,linting和自動填充功能
Vim是一個以非常難學而聞名的命令列文字編輯器(有個關於Vim的笑話:問如何生成一串真隨機數,答讓一個Web開發人員退出Vim)。所以為什麼還要學習它呢,尤其是當你已經習慣現有的文字編輯器或者IDE的情況下?學習Vim的優勢包括以下幾點:
-
Vim內建於任何類Unix系統上,這意味著你可以直接在伺服器上編輯檔案(這點非常有用)
-
與大多數文字編輯器和IDE相比,Vim是輕量級的,所以它即使在效能較弱的硬體上執行速度也很快且高效
-
Vim是完全由鍵盤驅動的(且大多數動作都集中在主排),因此它將使您更有效率?
在最後提高效率這一點後我打了個問號,這是你會經常聽說的觀點,但是我覺得不一定適用於每個人。基本上,為了讓使用Vim更有效率,你不僅需要花很多時間來瞭解它,更需要掌握它。這意味著使用它節約的時間通常會與用來熟練掌握它的時間抵消,而你需要持續花時間來掌握它。我會說學習Vim最好的原因是你享受花時間學習掌握一項複雜的技能這一過程。在這種意義上,這與想要學習一種新樂器的人的心態並無不同。
如果你認為以上列出的這些原因有吸引力,那你可以按照下麵列出的四周計劃來學習Vim。 這是我曾經學習Vim的方法,它來源於我在各論壇和教程中多次遇到的相似的建議。我還加入了一些我自己學習過程中的經驗。
第1周:每天學習一次vimtutor
很多人相信學習vim基礎的最佳方法是在終端簡單地輸入這一命令:
這一命令會在Vim中開啟一個包含基本Vim命令的分步說明文字檔案。瀏覽完整個檔案大概需要30分鐘左右。如果你瞭解vimtutor中涵蓋的命令,那麼您已經準備好使用Vim了。
問題是vimtutor包含了很多命令,沒有辦法一次學會所有的命令!我的建議是每天堅持輸入一次Vimtutor,這一習慣至少持續一個星期。每次你這樣做時看看學習完整個檔案的速度有無提升。同時為自己設定一個標的——看看你是否可以在5分鐘內看完整個檔案。要點是不要死記硬背每個命令——重點是花大量的時間練習,直到基本的導航和編輯命令成為第二本能。
如果您的標的是要足夠瞭解Vim,以便能夠在伺服器上遠端編輯檔案,那麼您可以在此停止——您已經知道足夠多了!如果您想使用Vim作為您的編輯器,您可以繼續下一步。
第2周:盡可能少地進行其他配置,不使用外掛
學會了Vim中的導航和編輯,下一步你會希望進行個性化配置。Vim的預設配置相當普通而過時,但使用vimrc配置檔案可以自定義功能。重要的是不要新增太多外掛試圖使Vim成為一個完整的IDE——Vim作為Vim就很好,作為IDE則很糟糕。
請按照本文來構建您自己的vimrc檔案。作為開始,這些是我為數不多的推薦配置的東西:
-
新增一個配色方案(我使用的是vim-code-dark,基於Visual Studio程式碼)
-
開啟語法高亮
-
設定空格和製表符
-
設定自動縮排
-
開啟行號
-
用tab在子檔案夾中查詢檔案
-
配置為按ESC快速退出插入樣式(我將我的大寫鎖定鍵更改為CTRL並使用CTRL C退出插入樣式)
事實上,這就是全部了!(無外掛規則的唯一例外是,如果您需要對Vim不支援的語言安裝語言具體支援)。 標的是避免一週內的任何其他配置或花哨的外掛——這可能會感到痛苦,但這將避免你花費所有時間來配置Vim,而不是練習Vim。
提示:當您配置vim時,在主目錄中使用結構如下的.vim檔案夾。較新版本的Vim將在.vim檔案夾中查詢vimrc檔案,以便將所有內容儲存在一個檔案夾中。 這允許您使您的.vim檔案夾成為一個git repo,您可以輕鬆地複製到任何計算機上!
第3周:盡可能少地使用外掛
在使用vim完成過實際專案之後,你會更好地瞭解vim的功能,此時你可以進行一些自定義配置。但是,你仍然應該註意不要安裝從根本上改變vim如何工作的外掛。以下列舉了一些很受歡迎的外掛型別,但我建議你現在不要使用:
-
不要安裝外掛管理器(較新版本的Vim原生的外掛管理就已足夠)
-
不要安裝樹瀏覽器或模糊檔案查詢器外掛(使用:find與子檔案夾搜尋效果就很好)
-
不要為視覺化標簽安裝外掛(試著習慣原生Vim快取,:b
很有用) -
不要安裝自動完成的外掛(原生Vim已經可以使用
來補全) -
不要為多行註釋安裝外掛(嘗試使用視覺化樣式)
-
不要為多遊標安裝外掛(使用帶n的/搜尋,需要時重覆.)
以上所要表達的重點是,很多時候外掛會阻礙你學習Vim實際功能。所有上述型別的外掛都很棒,可以節省時間,但是隻有當你完全瞭解如何使用原生Vim完成相同的任務後,你才能安裝這些外掛。
也就是說,有一些外掛,不改變vim的核心行為,且會使日常使用更方便。以下是我使用的一些外掛:
-
考慮安裝auto-pairs.vim(成對插入或刪除括號,花括號,引號)
-
考慮安裝endwise.vim(Ruby中,在if,do,def等之後自動新增end)
-
考慮安裝ragtag.vim(HTML,erb等中的標簽助手)
第4周:用動詞和名片語合Vim命令
此時你已經足夠瞭解Vim,可以開始組合新的命令,而不是記憶新的命令。組合新的命令代表著正式將Vim視為一種語言。Chris Toomey的“掌握Vim語言”演講很值得一看,它展示了這個概念的強大之處。
簡而言之,你需要知道一些動詞和名詞:
-
動詞 — d(刪除),c(修改),y(複製),>(縮排)
-
名詞(動作性的) — w(單詞),b(前移一個單詞),2j(下移兩行)
-
名詞(文字物件) — iw(內部單詞),it(內部標簽),i””(內部取用)
然後,您可以組合動詞和名詞來建立任意數量的命令
-
dw:刪除到單詞末尾
-
diw:刪除游標所在單詞
-
y4j:複製四行
-
cit:修改HTML標簽內的內容
演講中指出,記住約30條命令可以讓你組合超過2000個不同的命令。請註意,我在第4周提出這一點 – 這個東西是非常強大的,但只有當你對Vim有一個很好的把握時才有用。 3周後,你應該能很好的掌握30個必要的命令,以達到這個級別!
該演講還提到安裝外掛以增強Vim語言。一如之前反覆提及的,安裝外掛時應謹慎。但在這種情況下,我們討論的是增強Vim語言性的外掛(而不是與Vim的核心行為相矛盾的外掛)。以下是一些值得一看的外掛:
-
考慮安裝surround.vim(新增一個新的修飾符來更改包圍的引號,括號等)
-
考慮安裝commentary.vim(新增一個新的動詞到註釋行)
-
考慮安裝repeat.vim(為特定外掛新增.repeat支援)
(上述所有外掛都是由Time Pope提供,一個在你學習Vim的過程中必然會遇到的名字)
提示:在演講中,他們使用相對行號,實際上我不推薦。很多人在相對行號剛開始引入時就成了其粉絲,但我也聽說過一段時間後遇到問題的人(例如程式碼可讀性變差,有時會導致效能問題等)。因為你可以使用常規的Vim命令G或gg輕鬆完成相同的操作(移動到或刪除特定的行),所以我個人覺得它沒有實際用途。
總結
學習Vim是件繁重的任務,但也可以很有趣。如果你對花費一個月的時間來學習一個文字編輯器這件事感到畏縮,這可能不適合你。然而,我認為大多數開發者可以從第一週的建議中受益匪淺,至少能夠獲得直接在伺服器上編輯檔案的能力。你將能真正實現使用VPS在iPad或Chromebook上編寫程式碼。至少,當Vim在你的終端中開啟時,你將不會看起來很傻的困住!
如果你確實完成了4周計劃,你的程式設計能力將提升一個等級。實際上我不知道這是否會使你更有效率(因為你可能會把編寫程式碼的時間用來學習更多酷炫技巧並嘗試新的配置)。正如之前所說,它更像是學習一個樂器(取決於你的個性),你可以從逐漸掌握Vim的過程中得到快樂。希望這些建議對你的學習有所幫助!
英文原文:https://ogmcsrgk5.qnssl.com/vcdn/1/優質文章長圖/how-to-learn-vim-a-four-week-plan-cd8b376a9b85.png
譯者:Chara
《Linux雲端計算及運維架構師高薪實戰班》2018年07月16日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –
更多Linux好文請點選【閱讀原文】哦
↓↓↓