我使用了這麼多年的 Linux ,我會的也僅僅只是打開一個文件,使用上下左右箭頭按鍵來移動光標,切換到插入模式,更改一些文本,保存,然後退出。但那只是 Vim 的最最基本的操作。我的技能水平只能讓我在終端使用 Vim 修改文本,但是它並沒有任何一個我想象中強大的文本處理功能。這樣我完全無法用 Vim 發揮出勝出 Pico 和 Nano 的能力。
所以到底為什麼要學習 Vim?因為我花費了相當多的時間用於編輯文本,而且我知道還有很大的效率提升空間。為什麼不選擇 Emacs,或者是更為現代化的編輯器例如 Atom?因為 Vim 適合我,至少我有一丁點的使用經驗。而且,很重要的一點就是,在我需要處理的系統上很少碰見沒有裝 Vim 或者它的弱化版(Vi)。如果你有強烈的欲望想學習對你來說更給力的 Emacs,我希望這些對於 Emacs 同類編輯器的建議能對你有所幫助。
花了幾周的時間專注提高我的 Vim 使用技巧之後,我想分享的第一個建議就是必須使用它。雖然這看起來就是明知故問的回答,但事實上它比我所預想的計劃要困難一些。我的大多數工作是在網頁浏覽器上進行的,而且每次我需要在浏覽器之外打開並編輯一段文本時,就需要避免下意識地打開 Gedit。Gedit 已經放在了我的快速啟動欄中,所以第一步就是移除這個快捷方式,然後替換成 Vim 的。
為了更好的學習 Vim,我嘗試了很多。如果你也正想學習,以下列舉了一些作為推薦。
Vimtutor通常如何開始學習最好就是使用應用本身。我找到一個小的應用叫 Vimtutor,當你在學習編輯一個文本時它能輔導你一些基礎知識,它向我展示了很多我這些年都忽視的基礎命令。Vimtutor 一般在有 Vim 的地方都能找到它,如果你的系統上沒有 Vimtutor,Vimtutor 可以很容易從你的包管理器上安裝。
GVim我知道並不是每個人都認同這個,但就是它讓我從使用終端中的 Vim 轉戰到使用 GVim 來滿足我基本編輯需求。反對者表示 GVim 鼓勵使用鼠標,而 Vim 主要是為鍵盤黨設計的。但是我能通過 GVim 的下拉菜單快速找到想找的指令,並且 GVim 可以提醒我正確的指令然後通過敲鍵盤執行它。努力學習一個新的編輯器然後陷入無法解決的困境,這種感覺並不好受。每隔幾分鐘讀一下 man 出來的文字或者使用搜索引擎來提醒你該用的按鍵序列也並不是最好的學習新事物的方法。
鍵盤表當我轉戰 GVim,我發現有一個鍵盤的“速查表”來提醒我最基礎的按鍵很是便利。網上有很多這種可用的表,你可以下載、打印,然後貼在你身邊的某一處地方。但是為了我的筆記本鍵盤,我選擇買一沓便簽紙。這些便簽紙在美國不到 10 美元,當我使用鍵盤編輯文本,嘗試新的命令的時候,可以隨時提醒我。
vim cheat sheet
Vimium上文提到,我工作都在浏覽器上進行。其中一條我覺得很有幫助的建議就是,使用 Vimium 來用增強使用 Vim 的體驗。Vimium 是 Chrome 浏覽器上的一個開源插件,能用 Vim 的指令快捷操作 Chrome。我發現我只用了幾次使用快捷鍵切換上下文,就好像比之前更熟悉這些快捷鍵了。同樣的擴展 Firefox 上也有,例如 Vimerator。
Vimium
其它人毫無疑問,最好的學習方法就是求助於在你之前探索過的人,讓他給你建議、反饋和解決方法。
如果你住在一個大城市,那麼附近可能會有一個 Vim meetup 小組,或者還有 Freenode IRC 上的 #vim 頻道。#vim 頻道是 Freenode 上最活躍的頻道之一,那上面可以針對你個人的問題來提供幫助。聽上面的人發發牢騷或者看看別人嘗試解決自己沒有遇到過的問題,僅僅是這樣我都覺得很有趣。
那麼,現在怎麼樣了?到現在為止還不錯。為它所花的時間是否值得就在於之後它為你節省了多少時間。但是當我發現一個新的按鍵序列可以來跳過詞,或者一些相似的小技巧,我經常會收獲意外的驚喜與快樂。每天我至少可以看見,一點點的回報,正在逐漸配得上當初的付出。
Vim Advantures學習 Vim 並不僅僅只有這些建議,還有很多。我很喜歡指引別人去 Vim Advantures,它是一種使用 Vim 按鍵方式進行移動的在線游戲。而在另外一天我在 Vimgifts.com 發現了一個非常神奇的虛擬學習工具,那可能就是你真正想要的:用一個小小的 gif 動圖來描述 Vim 操作。
你有花時間學習 Vim 嗎?或者是任何需要大量鍵盤操作的程序?那些經過你努力後掌握的工具,你認為這些努力值得嗎?效率的提高有沒有達到你的預期?分享你們的故事在下面的評論區吧。
原文來自:http://os.51cto.com/art/201608/515545.htm
轉載地址:http://www.linuxprobe.com/developers-admin-vim.html
http://xxxxxx/Linuxjc/1155949.html TechArticle