2010-08-19 30 views
14

我已經開始使用VIM進行一些編程。
我很有感情到目前爲止。一方面我喜歡這個想法,另一方面 - 很難記住一切。如何不放棄VIM?

所以我採取了的學習方法,實際上做的是一些東西(Ruby on rails開發)。
不幸的是沒有機會在地獄我更富有成效在其他「傳統」的文本編輯器現在。看起來需要相當多的時間才能習慣VIM。

我注意到,我通常不會使用 VIM導航/搜索&替換能力,而是像我在其他編輯器中那樣移動。

我努力推自己不使用,除非VIM其他編輯器打開任何東西,所以我可以瞭解它

但是,老實說,昨天我放棄了,並做了我在GEdit最後20分鐘的編碼。

更新:我想說我爲什麼給 - 只是因爲我會完成我所需要的更快(這是veeeery遲了,這不是學習VIM的最佳時間)。事實上,我的確喜歡使用VIM。但我總是有「there must a better way of doing this」的感覺,並花了很多時間找到這種方式。

所以我的問題是:如何學習和開始使用VIM更有成效的日常提供,我想在學習時做一些真正的編碼?

謝謝,
德米特里。

+2

擁抱Vim或放手吧。 – 2010-08-19 10:41:50

+23

當你處於這個狀態時,你可以輕鬆** ** bold **。 :-) – 2010-08-19 10:43:08

+3

另請參閱http://stackoverflow.com/questions/74625/what-is-the-best-way-to-force-yourself-to-master-vi – 2010-08-19 10:58:43

回答

23

請牢記以下。雖然對手指的速度有物理限制,但對大腦可以執行的處理似乎沒有限制。因此,在學習vi(m)的鍵盤編輯命令和快捷鍵時,隨着編輯速度的提高,打破了使用傳統編輯器時遇到的物理速度限制,您將花費大量時間回饋您。例如,要刪除vi(m)中接下來的五個單詞,請鍵入5dw並插入50個字符即可輸入50i* ESC

在學習很少的命令後,您可以開始使用vi(m):基本移動,插入,更改,刪除,打開新行和保存文檔。將這些命令結合在一起產生強大的組合。當你掌握這些,你會尋找更多。

打印vi參考表(如thisthisthis more extensive list),並隨時保持在您附近。

+1

謝謝。我應該時刻牢記:「你花時間學習vi(m)...的時間會隨着時間的推移而得到回報。」 並感謝您的鏈接! – 2010-08-19 14:24:50

5

爲什麼?使用最適合你的編輯器,使你成爲最有成效的人。我使用vi編輯配置文件,因爲它通常是編輯幾行然後退出的最快方法。對於嚴肅的編程,它可以是TextMate(ruby),Emacs(在沒有TextMate的平臺上是python或ruby)或Xcode(objective-c)。

+3

不要去那裏。請。 Vim vs. Emacs太具爭議性了。 – 2010-08-19 10:37:55

+7

雖然他有一點。如果在戰鬥一段時間之後你沒有掌握任何東西,爲什麼會削弱你的生產力?使用您熟悉的工具。我不認爲這個答案是Vim/Emacs flamewar的開始。 – musiKk 2010-08-19 10:48:44

+2

@the_drow我不會去那裏,我會說無論用途如何,或者兩者兼而有之,無論他們看起來最適合什麼目的。你提出了爭議。 – 2010-08-19 10:51:29

2

我聽說過SwaroopCH的Byte Of Vim book很好的東西。還沒有到處閱讀它自己呢,但他的Python Byte的書絕對是優秀的。

+0

我使用Learning Vi和Vim編輯器這本書很不錯。但是我得到的最好的提升是從PeepCode Smash到vim。 – 2010-08-19 15:04:48

6

當它是有道理的使用它開始:在配置文件快速編輯,提交信息,README更新等...

啓動速度很難被打敗。

當你掌握了一些基礎知識的時候,如果你認爲「我現在需要做的事情必須有一些東西在裏面」,那麼請瀏覽幫助文件。 ...

建立知識逐漸....一步一步...

直到你找到有一天,你做了很多你的VIM編輯或發現你的工具鏈以及與Vim的整合。

我個人使用哪個效果最好,爲的IntelliJ Java的,爲的Emacs Clojure的,Vim的於Perl和Ruby腳本,...

+0

然後將其用於一切。然後意識到你只是在你的Microsoft Word文檔中放入了一系列'j',因爲你試圖走下一條線;) – espais 2010-08-19 11:03:24

+0

你發現我:'我必須做些什麼來完成我現在需要做的任務' 。這正是我的感受。在編碼的時候,我大部分時間都在想這個問題,確實瀏覽書籍和搜索互聯網給我帶來了很好的答案。因此,現在進行實際編輯的時間非常龐大,因爲我經常試圖找出如何更好地完成某種工作。我希望隨着時間的推移,我會越來越多地學習。 – 2010-08-19 15:03:58

+0

我認爲VimClojure插件很漂亮,但後來我不知道emacs。 – intuited 2010-08-19 15:35:23

4

我努力推自己不要打開除VIM其他編輯什麼所以我可以學習它。 但是,說實在的,昨天我放棄了,並在GEdit中做了最後20分鐘的編碼。

開發人員應該對他工作的環境感到滿意。這就是爲什麼開發人員爲開發人員開發了大量編輯器的原因。

只要編輯器按你想要的方式做,你想要的方式,這一切都很好:編輯器只是一個工作的意思。

所以我的問題是:如何在日常學習和開始使用VIM時提供更高的效率,前提是我想在學習時做一些真正的編碼?

對於VIM,不幸的是,我的建議是花費數天的時間,而不做任何真正的工作,而只是學習。我花了大約兩天的時間才瞭解高效編輯所需的基本功能。我知道這位編輯會在我的日常工作中發揮重要作用,這就是爲什麼我在業餘時間接近一週的時間內學習VIM和Emacs的原因。

我的前同事還保留a VIM cheat sheet作爲他的桌面壁紙。在開始時幫助。

+0

PeepCode的粉碎入VIM讓我開始非常快。我現在在學習VI和VIM書附近。但我不確定我是否可以正確學習VIM而不是真正編碼。 – 2010-08-19 15:00:40

+0

IMO書籍不幫助以vi/VIM開頭。必須學習基本知識:四處移動,選擇/複製/粘貼,搜索/替換。在涵蓋基礎知識之前,我已經使用[nano](http://www.nano-editor.org/)。就我而言,VIM的採用也得益於我對外殼的瞭解以及我是觸摸打字員的事實。幫助系統(':h')也很棒,[Vim Wiki](http://vim.wikia.com/wiki/Vim_Tip​​s_Wiki)非常有幫助。但是如果你在嘗試幾周後不喜歡VIM,那麼不要強迫自己,更好地使用你喜歡的任何東西。 – Dummy00001 2010-08-19 16:24:43

0

VIM需要花費大量的時間來習慣,實際上是生產力與 這是我如何看待它: 假設你的生產率指數是在任何地方1到10之間 當你開始使用其他編輯器,您的工作效率索引就像6,並且可以上升到8. 當你開始使用vim時,你的生產力就像2,但是你可以高達10。這只是需要時間。

7

我使用Gvim(GUI模式)。如果您忘記了某些操作的按鍵順序,則可以通過GUI調用它。對於大多數操作,您還可以看到必需的鍵,以便Gvim也可以作爲Vim的快速參考。

當然,不同的文本編輯器不會神奇地讓你更有效率。但是如果你喜歡在主流編輯器上使用鍵盤快捷鍵,你會喜歡Vim,因爲你可以通過幾個按鍵觸發相當強大的動作。

我個人不喜歡Vim,我更喜歡主流編輯。但Vim具有REST語法着色功能,並且在大約一週後我發現它完全可用。

+2

GVim的+1。當我使用本地文件時,我經常使用GVim,它允許執行許多類似於其他編輯器(例如剪切/複製和粘貼)的操作,這在一開始就有所幫助。 – dbemerlin 2010-08-19 11:30:33

+0

+1用於爲鍵盤快捷方式提供發現/提醒的菜單。 – 2010-08-23 09:09:53

5

我更靜態類型語言的傢伙,這是我的故事:

對我來說是VIM在正常模式+ intert模式下,所有關於hjkl運動。我發現它非常高效,我想隨時隨地都有它。

然後,我開始讀時間備忘時間和拾起最佳的姿態記住(從最常用的,以某種方式排序,以更少有用的):bwxgjgkggG,數g*#%f/t/F/T/>><<=v然後用j/k,標記/=/>>

然後我開始寫Makefiles到一切,並配置Vim來填充它。所以我做:mak,我正好在發現錯誤的那一行。

然後發生自動補全(綁定到TAB)。

然後自然語言檢查z=

然後我寫了一個切換緩衝區的包裝。用:e filename.c打開它們,然後做Ctrl + l,Ctrl + h

我有我的配置在這裏git的存檔可公開獲得的: http://github.com/dpc/vim-config

2

瞭解你的節奏。我想你應該開始掌握基礎知識:

  • 模式:命令,正常和視覺
  • 的命令:粘貼,猛拉,刪除。

然後你就可以提高這些知識:

  • 學習在命令模式下的一些命令(名單緩衝區,替換)
  • 學會更快地移動(開頭的字/行/文件/結束)
  • 搜索/替換的模式
  • 看看人們的vim的配置和定製你的

在做這件事時,請始終在您附近留下vim作弊表。基本命令很容易記住(d爲刪除,p爲粘貼,y爲yank,i爲插入,a爲附加,...)。

逐步學習,保持簡單。

+0

我已經將PeepCode的Smash轉換爲Vim系列並使用其配置(稍作改動)。按照我的節奏學習是一個很好的建議。謝謝。 – 2010-08-19 14:21:01

1

書怎麼樣?

這些的人是極好的:

  1. Learning the vi and Vim Editors

  2. VI Editor Pocket Reference

而且畢竟,有什麼 - 這樣你就不會用vim工作。 vim有什麼大附加值,值得學習它的難度?

+0

我正在與第一個。對我而言,這不是關於大的附加價值(雖然它非常重要),而是知道與傳統上被接受的不同之處。 就像我在C#之後學習Ruby(動態語言)一樣。 – 2010-08-19 14:18:33

1

以下是來自Ruby on Rails團隊核心成員Yehuda Katz的一些新穎建議,他們最近轉向了Vim:嘗試使用它,就像任何其他編輯一樣,因此您可以保持高效。也許這意味着首先繼續使用箭頭鍵或* gasp *鼠標。不要試圖一次學習所有的Vim方法。相反,讓他們慢慢自然地來。

完整的文章是一個偉大的閱讀:

Everyone Who Tried to Convince Me to use Vim was Wrong

此外,嘗試在其他應用程序中使用六鍵綁定。如果你的shell支持vi移動,那就使用它。對於網頁瀏覽,請嘗試驚人的Vimperator Firefox plugin

+0

如何在地獄我可以想念他的文章... 感謝您的好建議。目前我使用Visual Studio很多,所以我想我也可以嘗試VIM。 當我在VIM中導航時,「常規」對我來說總是感覺很髒。現在我可能需要重新審視它。希望以後它不會成爲一種習慣。 – 2010-08-19 15:16:17

+0

http://stackoverflow.com/questions/7579213/is-there-an-interactive-way-to-learn-vim – SergioAraujo 2011-09-28 17:41:20

0

這裏是我學會了如何當我切換從Windows到Linux:

1)我打印出來的VIM quick reference card(PDF),並在任何時候都保持它緊挨着我的鍵盤。

2)我開始使用gvim並使用easy模式(gvim -y或evim)。這使得vim的行爲類似於普通的編輯器 - 它總是處於插入模式,並且鍵被映射爲像普通的編輯器(例如用於剪切/複製/粘貼的CTRL-X/C/V)一樣工作。您仍然可以使用CTRL-o訪問所有vim功能以輸入單個Vim命令,然後它將返回到插入模式。

經過一段時間,我厭倦了使用CTRL-o或菜單,並切換到適當的Vim模式。從那以後,我一直沒有回頭,現在甚至在Windows上都使用Vim。我甚至在FireFox上使用Vimperator

它也值得看看Cream - 這就像類固醇vim簡單模式。

如果你發現你使用evim或者cream很舒服,那麼無論你使用vim純粹主義者怎麼說,你都不需要一路轉換到正常的vim模式。你應該瞄準成爲你的工具的主人,而不是他們的奴隸。

1

也許一些復活節彩蛋會幫助你開始右腳。請嘗試以下,並享受開放源代碼的傳統,包含愚蠢:)

  • 遺留的奇妙世界:幫助42
  • :幫助聖 - 聖盃
  • :救命!
  • :幫助地圖模式(參見有關表下面的評論:nunmap)
  • :幫助UserGettingBored
  • :幫助勺子
  • :幫助表演賽(閱讀說明)
  • :倪!

(瞭解更多:參觀vim.org

3

任何人都希望學習Vim應該檢查出Open Vim網站。對於Vim的任何新手來說,這都是一個絕佳的資源。它有一個互動教程和各種沙盒模式,可供編輯玩耍。玩的開心!