2010-02-15 61 views
24

我非常專門做Ruby on Rails開發。我目前使用TextMate在OS X中開發。我有一臺虛擬機運行,儘可能模擬我的應用將部署到的環境,並將代碼從VM guest虛擬機上的Samba共享安裝到OS X中。從那裏我用TextMate打開並編碼。思考從TextMate移動到Rails dev的vim。我需要什麼?

我開始認爲,通過適當的插件和學習時間,我可以在vim上直接在虛擬機上獲得更高的效率。現在我的TextMate基本上是庫存的,但我確實發現ProjectPlus插件是不可或缺的。我正在尋找的是對vim資源和插件的一些建議(如果這是正確的術語),以密切模擬我不願放棄在TextMate中的功能。或者至少,我應該願意放棄這些理由是令人信服的。以下是一個簡短列表:

  • 能夠隨時顯示(優選)可摺疊項目樹或可輕鬆切換。
  • 能夠一目瞭然地查看SCM狀態,無論是在此項目樹中(最好)還是其他方式。 (我用的git的幾乎全部,如果這有什麼差別。)
    • 能夠從VIM內查看並排側差異將是巨大的
  • 能夠通過在整個項目搜索將(我想:stop; grep -nr; fg;會做到這一點,除非有一個更好的方式來做到這一點。)
  • 代碼完成,如果可能的話

回答

27

NERD Tree插件爲您提供了一個可摺疊的項目樹。就我個人而言,我發現netrw插件綽綽有餘,這通常與Vim一起安裝。儘管NERD樹感覺好像試圖模仿其他IDE(和TextMate的項目抽屜)的行爲,但我覺得netrw插件以Vim的方式來做事情。我建議你試一試,看看你喜歡哪一個。

fugitive插件提供一個git接口的Vim(參見Vimcasts:份12345)。

ack插件非常適合搜索整個項目。您需要閱讀Vim的quickfix列表以充分利用此列表。

TextMate的字完成觸發與ESC,並轉變 - ESC。在Vim中,你使用CTRLautocomplete功能相似 - 在插入模式p - ñCTRL。檢查:help ins-completion(太多!)更多信息。

我正在運行一系列關於在vimcasts.org學習Vim的截屏視頻。我的背景是TextMate,但我現在一直在使用Vim。在我寫這篇文章的時候,我只有6集,但是我打算覆蓋你在未來劇集中提出的每一點。我會嘗試回來編輯這個答案,並提供指向屏幕錄像的鏈接。

1

搜索整個項目here.

代碼完成:通常用ctrl - X then ctrl - O while in in ert模式。

Git的整合:git.vim

項目樹:Nerdtree.vim

好運

2

您可能想從我的Ruby/Rails相關的vimfiles開始,其中包括對rvm和git的支持。

4

對於文件導航只是愛CommandT
這個功能與textmate中心愛的commandT功能非常相似。

1

所有其他的答案加:

能力有一個(最好)可摺疊項目樹或者可見在所有時間或輕鬆切換,能。

  • project.vim插件不會真的這樣TextMate的項目抽屜裏,但已經很接近了。
  • 使用NERDTree,您可以設置書籤並使其有點像項目抽屜。
  • :help mkview:help mksession也可以提供幫助。

能夠查看SCM狀態一目瞭然,無論這個項目樹(優選)或以其他方式內。 (如果這有什麼區別的話,我幾乎全部使用git。)

  • vcscommand.vim提供同一組的多個供應鏈管理系統的命令,它的工作原理使用Git,SVN,水銀...
  • 您可以使用前面提到的逃犯插件在狀態欄中顯示Git的狀態,:help fugitive-statusline

能夠從VIM內查看並排側差異將是巨大的

  • 逃犯提供了:Gdiff命令可以做到這一點。
  • 最近發佈的名爲Gitv的插件嘗試在Vim中模擬GitK。我非常喜歡它,作者非常敏感。在樹視圖中,點擊<CR>以在另一窗口中打開先前的提交,並在D中查看雙重差異。

代碼完成,如果可能的話

  • 有幾個解決方案,如果你不需要它是自動<C-x><C-o><C-n><C-p>將是綽綽有餘,如果你想要「自動完成」,你可以嘗試these few plugins。我最喜歡的是autocomplpop
0

我今天發表關於這一主題的擴展後,在我解釋如何從TextMate的VIM內複製100層的功能。這是大量小時研究的產物。

比如我解釋:

  • 如何複製項目抽屜
  • 如何管理標籤
  • 怎麼辦Rails的特定命令(讓我們面對現實吧:很多TextMate的用戶都Rails的程序員)
  • 怎麼辦查找和替換
  • 如何做好項目範圍內的搜索

查看原始文章:Textmate To VIM

相關問題