標籤:

你為了真正做到使用vim提高效率,花了多長時間學習和練習?

我至今有若干次這樣的經歷:

我要使用vim!-&>配置vim,把快捷鍵抄下來貼在寫字檯上-&>開始使用-&>好痛苦啊!!!-&>真的好痛苦啊!!!快捷鍵怎麼都記不住,記住了也按的很慢-&>不能再折騰了,沒時間了-&>放棄

整個流程大約歷時一個星期左右……


1.先問一下你為什麼選擇VIM?

我的答案是:在未來相當長一段時間,我需要做大量的文字編輯工作(寫代碼等),而我又是一個對於低效率忍耐力較差的人。這樣,我需要一個經過時間考驗現在仍很活躍的,開源的(個人喜好),跨平台的(至少Linux+Win),可擴展的(插件機制等,可以讓我直接使用別人的成果),在這些條件限制下,我偶然的選擇了VIM。其實Emacs也可以。甚至你喜歡用滑鼠的話,eclips等IDE都可以。

啰嗦這麼多其實只有一個意思,你不一定非得選VIM,要根據自己的需求來。用VIM的都是一群喜歡折騰的人。他們可能會花上幾個小時去"打磨"自己的VIM,換來一點點方便。

2.既然下定決心要用VIM,就要給自己定好計劃。什麼階段用多長時間,達到什麼樣的目標。

第一階段自然是vimtutor,也許看完一遍只需要30分鐘,但如果練習到近乎本能就不是一兩個小時的事情了。

建議,第五、七、八講可以先跳過。

即便是沒有接觸過VIM的新手,用一到兩個小時已經可以讓VIM不遜於記事本了。只不過他們的很多操作效率都很低,比如刪除一行連續按Backspace而不是dd。

第二階段開始前建議先閱讀Bram 的《Seven habits of effective text editing 2.0》,不斷的改進自己的操作習慣才會讓VIM越用越順手。

第二階段就是不斷練習以提高的過程。 比如你常寫javascript,那就用VIM寫一些javascript腳本。在練習中尋找不方便或者說效率低的地方,比如:

1. 腳本開始要輸入一些固定的注釋,比如作者郵件,文件名等等,這個是不是可以自動化?

2. 是否能夠自動補全關鍵字乃至類的成員?

3. 代碼對齊不好看,能不能改?

4. 代碼高亮不好看,能不能改?

5. 如何快速注釋掉一些代碼?

6. 如何快速定位到一個關鍵字,比如函數的定義或者調用等?

7. 快速翻頁

8. 用標籤頁打開多個文件

9. 代碼摺疊

10. 括弧匹配

11. undo/redo

12. 列編輯

等等等等。

然後就是找到解決辦法(google,論壇等),加以不斷的練習,直到它成為你的本能。

比如我會用C-F, C-B翻頁後,就再沒碰過PgUp, PgDn這兩個鍵。

發現低效率==》想辦法改變它==》反覆練習把它變成習慣,不斷重複這個過程,你會發現VIM越來越好用。

大部分人都是在這一階段,不過效率有高低之分罷了。

基礎的部分到了一定程度後,你會發現有些地方還是不盡如人意。這個時候你可以拿自己的VIM環境和你之前使用的其它環境(比如eclipse)做個對比,看看有哪些功能是你想要的,然後找找有沒有現成的插件或者方法。

第三階段,終於你發現了一個沒有任何現成答案的問題。你需要自己想辦法了。可能是自己寫個plugin,甚至修改VIM的源代碼(我估計你在第二階段的時候,就已經使用自己編譯的VIM而不是別人發布的二進位版本了)。

3. 使用時最忌諱的事情——死記硬背所有的快捷鍵。

除了最基礎的操作,其它的都應該是循序漸進的,

發現低效率的地方,做針對性的改進,再加上反覆練習後自然會記住。

vim的默認快捷鍵能用到10%就相當不錯了。

4. 最後一點兒忠告:不要用滑鼠!

補充一點兒東東,可以去http://playterm.org/s/?tags=+vim 看看「高手」是怎麼用VIM的。


我花了2天時間來學習和適應vim的操作方式,也就是兩天之後的vim,對於我來說已經和notepad沒有什麼區別了,我可以正常的打字、打開文件和保存文件。

因為我一開始的工作效率就很低,並且文字處理(非編程)的需求很大,所以當時是有目的地去學習使用vim的。vim為我明顯提高工作效率,應該是在我使用vim的一周時間之內。

很多人使用vim是為了編程,我的情況並不一樣,我當然也用vim編程,但是並不太多,在絕大部分時間,我用vim來處理文本。以下舉一些例子。

1、我下載了一些pdf文件,是個報告書,我希望把報告書的標題用作文件名。但是,令人震驚的是,那個報告書的標題複製出來之後居然是豎排的:

我想到三個解決方法:換一個pdf軟體;手動一個一個字接起來;用vim的拼接功能。

使用vim是怎樣解決的呢?

只要按這幾個鍵,shift + v + g + j,就可以了。4個鍵解決問題。而且無論多長的內容,要按的鍵數都是一樣。這個編輯效率其他編輯器望塵莫及。

我當時花了1個小時查找vim怎樣來拼接文字。

2、我工作中有一個Excel表格,有類似如下的內容:

我需要以這樣的形式寫到Word里:

燒雞、烤鵝、豉油雞、方碟、湯勺

使用Vim的話,先選中Excel裡面需要的項,粘貼的Vim里:

ctrl + v , 4k,選中後四行的第一個字:

shift+i變成插入模式,然後輸入一個頓號

esc回到normal模式就變成了這樣

k,shift + v + g + j,完成。


vim自帶一個vimtutor,gvim安裝後可以在開始菜單中找到vimtutor,或者終端中輸入vimtutor,30分鐘入門再說。vim和普通的編輯器非常不一樣,vim中,所有的操作都是命令,命令是可以組合的,在vim中寫代碼,其實和寫程序差不多,所謂的快捷鍵,不過是一些命令的組合而已。你需要記住的vim的一些基本命令操作,所有複雜的快捷鍵都是命令原子組合而成的。

個人感覺,vim完全不用看任何其他資料,直接在vim中輸入:help,vim中所有相關信息都可以看到了。插件之類的,可以後面再配,關鍵在於多用,慢慢的就熟悉了。

剛開始使用vim,不要一下子完全遷移過去,沒那麼快的,做好一個月入門的打算。vim是一個值得使用十年甚至更久的工具。

總結一下,入門的大致步驟是:

  1. 30分鐘熟悉vim基本操作,使用vimtutor。
  2. 開始使用vim聯繫寫代碼,遇到問題搜索一下,比如如何在插入模式中刪除單詞(&),如何快速退出(C-c, C-[, C-o),等等。不要為了學習vim而使用vim,直接用vim做實際的工作,這樣,做中學才能記得住——用心理學原理來說,記憶一個東西取決於信息加工深度,你在思考一個操作在vim中如何執行,使用vim的help或者谷歌資料,這個過程,都是在對如何操作這樣一個信息進行加工操作,你自然能夠很容易記住的。
  3. 大概熟悉了之後,可以嘗試在vim中增加各種插件配色。vim所有插件都有一個help文檔,這個時候熟悉:help和:helptag命令非常重要了。
  4. 進入第3步,你大概已經能夠使用vim快速編輯,體驗鍵隨意動的暢快體驗了。如果,還是覺得不好,那麼大概vim不適合你。後面,再次把vim文檔看一遍,自己修改配置文件,自己定義一些自己的函數集合,看看各種vim插件怎麼寫……

vim越用越嗨皮的,誰用誰知道。其實,它完全沒有人們描述的那麼複雜的。祝你好運。


門檻確實不低,當初用了多少時間不記得了,不過不算短,自帶的help文檔看過不下三遍,更不提時常還得查詢一下子;

如果你沒有用vim的需求,還是不要這麼折騰了,意義不大


問出這個問題,說明題主已經著相了。

Vim的默認快捷鍵,除了一開始菜鳥常用(而老鳥不用的)hjkl,其它都不需要記憶,只需要按需查詢。多次查詢、使用後產生肌肉記憶,達到手隨念動、人器合一的境界。

Vim的功能很多很雜,而菜鳥和老鳥都無需全部精通。當對Vim的了解到了一個境界,你會發現它無非是把常用的增、刪、改、查、剪、拷、貼等基本編輯操作,用簡單的按鍵操作來實現,而所謂高級操作,無一不是這些基本操作的組合。

最終,你自然會知道Vim能做什麼,不能做什麼。


初用不要太折騰,比如插件,各種花哨配置等等,盡量只用自帶的功能,淡定。熟練使用這種軟體是一個「肌肉記憶」的過程,背的效果不太好。我從開始用Vim差不多兩年才開始補充插件,之前都只用很小一部分功能。

另外一件事情是,使用Vim這種可配置可擴展的軟體是需要需求或者想像力的,而不是窮盡列舉這個軟體提供了哪些細節編輯能力。當覺得效率不夠,操作可精簡,可自動化,或者覺得「如果有這樣一個功能會很贊」的時候,你就在為現時的真正需求學習使用一個軟體。


回想一下也是一點一點學的。

不過開始時的堅持很重要。我一開始用的時候也感覺有點痛苦,不過就先從熟悉游標的移動開始,還有i、a、x三個功能。只用了一會就知道我需要下決心才能熟悉的了,於是就下了:就用這個來工作,至少堅持兩個月。

後來到底堅持了多久也不知道,因為後面是變成無法離開它了。沒有其他編輯器比它更強大更高效,尤其在linux的環境下結合shell更是無敵。期間的不方便、痛苦的地方,後來都是發現其實vim是有對應的快捷的功能能做到的,只是當時吧知道而已。

轉眼用了這麼多年了,每段時間我再回頭去找vim相關的資料時,總能發現一些我不知道的功能或技巧,讓我興奮跟驚嘆不已。沒有其他任何一個軟體能伴隨我並做到這點。

我特別感謝當時的技術總監,如果他不是看我在笨拙地使用某個IDE時痛斥我一頓,我也不會去選擇vim。不過如果我沒有很快下定了決心跟每天都用它,我也會很快失去深入了解它的機會的。


曾經我是先花一個下午的時間保證全部都記住,主要是為了記住vim中有哪些操作,然後就直接上手,之後慢慢的去操作,忘記實現某個操作的命令要去查看下(前提你要知道vim中有這個操作),長時間的反覆練習會好的,許多事都不是一蹴而就的,即便現在我現在時間長了有些還是會忘記,關鍵還是長時間的不間斷的使用。慢慢來,一切會好的。


學了不超過5次吧。

每次都是用一段,然後又痛苦地回到了EditPlus的懷抱。然後,我又被編輯器之神的名號所蠱惑,又開始學著用,如此反覆……

忽然有一天(我真的不知道從什麼時候開始),我發現我用VIM不再痛苦了,感覺VIM的功能真TM方便,這軟體真是只有經常寫代碼的人才能設計得出來啊,太貼心了!

後來就經常參考一些VIM技巧,改進自己的使用方法。

再後來,離了VIM就不爽,感覺所有的軟體都應該有個VIM插件。


用的越久效率越高,用的越久學的技巧越多。

不知道有沒有神,能夠100%掌握vim?

第一次看:help,暈倒。

新人直接運行vimtutor,就行了


我覺得沒必要一開始就接觸vi的各種高級功能吧,先就當個普通的編輯器使用。在使用過程中發現有些編輯方式使用的很頻繁,就可以去查查有沒有相應的高大上用法,久而久之,掌握的高大上用法自然就多了。

之後當覺得vi用著很熟練了,就可以去嘗試著各種折騰嘛。

嗯,我覺得一開始當個vi小白也不錯。


做我從業20年的老碼農,我說說我的看法. vim,emacs,其他編輯器的選擇基本是個宗教問題. 選擇哪個不重要,重要是用熟練. 我經常見到美國同事在macbook pro用vim寫web頁面鍵盤按的飛快看起來很專業,但是很遺憾,從產出看是完全沒有效率. 但他們完全看不起用eclipse的人,認為不專業. 我是一個沒有宗教信仰的人,在開發工具上也一樣沒有任何偏執。我本身是什麼都用,因為也很難找到一個開發效率高又能兼容所有平台的工具。vscode開始的時候是一個正確的方向,現在發展得讓人失望. vim更適合linux下,在mac下我還是更喜歡xcode.在windows下更喜歡visual studio. 在unix下我至少工作過兩年,全用vi,是的,你沒看錯,不是vim,因為unix管理員禁止安裝任何個人程序. eclipse也在用,但僅用來開發java程序. android開發我會毫不猶豫的選擇android studio. ... 沒有宗教信仰也好,沒有任何負擔!


在線VIM模擬學習 在線Emacs模擬學習


當初用 vim,不知道有 vundle,沒裝插件,就開始用,一用就是半年!

為什麼要用它?沒辦法,我不喜歡 IDE,太重了,當時 linux 下選只有 vim 和 emacs 了,sublime 是什麼我都不知道,或許孤陋寡聞,vim 名字短,所以選它了!

怎麼學的?:h

最初的配置就開了

- 語法高亮

- 行號

用的命令也不多

- 游標的基本操作

- x 刪除剪切

- y 複製

- p 黏貼

- v 橫向選中

- n shift G 定位行

- vs/sp 縱橫切屏

- ctrl p 補齊

這些命令也是目前 80% 在用的!

現在無非多一些插件,如模版,文件樹,代碼格式化,跨文件函數定位,語法檢查,函數補齊,自動化測試


好用是王道


網上找點視屏教程,知道可以這麼用,這樣碰到同樣的問題能想起來,慢慢的就熟了。

這種教程很短,youtube很多的。


快捷鍵不需要特別記憶,熟悉了基本操作以後,有些快捷鍵只需要在必要的時候學習,比如你發現每次dw後還要i,你就知道cw可以節省一次鍵入。

可以安裝一個pentadactyl,可以幫助你網上衝浪的時候熟悉一些快捷鍵。

如果有可能,鍵盤換成hhkb,沒有方向鍵會讓你保持鍵位。


也許是好運,大二的暑假裡,不知不覺就學會了 vim。

當時正好在玩 linux,同時也在練慣用 C 練習寫一些演算法。那時候挺愣的,直接把 vim 的操作手冊列印出來看。我每次都是先用 vim 練習一下從手冊裡面看到的命令,每次都能練熟幾個指令,還挺嗨的。等覺得有點煩了,就切換回 gedit 寫代碼。所以,就這樣一點一點地玩熟了。

現在,已經離不開 vim 了,用過 sublime、vscode、xode、IDEA 等等,統統都讓我裝上了 vim 插件。不過,我也沒有成為 vim 的重度用戶,沒有陪過那些糊里胡少的配置,一般就安裝 pathogen 和 ctrl-p 兩個插件。

最後,誰能出一個支持 vi mode 的 markdown 編輯工具啊!!


大概一個半月的高強度使用

主要是真心覺得它很適合我;


確實花了很長時間學習。我感覺有3個月。。可能是我學東西比較慢。。(能堅持下來,原因其實只有一個,我買了個HHKB PRO2,要對的起這個鍵盤。。)

用的不是很深,但是我覺得vim的效率體現在以下幾點:

1 在終端中運行,與終端無縫切換,也正是這個原因,vim是全鍵盤操作的,基本要求使用者脫離滑鼠只使用鍵盤操作,全鍵盤操作對效率的提升是比較明顯的,當然入門不易。全鍵盤操作的另一個好處是宏(macro)的錄製變的十分自然,使用宏來解決重複的編輯十分有效;

2 vim定位是文本編輯器,而並非某種語言的IDE,所以如果用於編碼,對不同的語言,得到的是一致的代碼編輯體驗,單純就文本編輯的效率來說,vim有較大優勢;

3 vim提供vimscript用於.vimrc的配置和插件編寫,可以根據個人需要編寫出很多特殊需要的編輯功能

我感覺一本比較好的教程是這個:

Learn Vimscript the Hard Way


推薦閱讀:

為什麼vim只支持等寬字體?
哪兩個字母不可能連在一起?
Vim和Emacs哪個用戶數量更多?
你有哪些 Vim 綜合征?
Vimrc 能否將 capslock 綁定為 esc 鍵?

TAG:Vim |