2012-04-10 66 views
0

我使用的是git和vim。我的哥們正在使用git和TextMate。今天我遇到了一個問題,我使用vim和git添加了一個文件。他在TextMate中修改了它。然後我拉他的改變。我添加了幾行,但是coffeescript編譯器(和vim-coffee-script)扔了一個合適的,因爲他們沒有識別我的換行符。所以,我跑了:set ff,它現在顯示了mac,它用來顯示unix。Vim,TextMate,git和換行

爲什麼coffeescript不能識別換行符?我怎樣才能防止這種情況發生在未來,無論是我的git或vim配置?

我的VIM配置:

set ffs=unix,mac,dos 

既不是我們的git CONFIGS的做任何事情core.autocrlf

+0

你用coffeescript得到了什麼錯誤? – Usagi 2012-04-10 18:34:08

+0

它確實取決於代碼,但是當我查看它創建的JavaScript時,它的行爲就好像我沒有換行符,並且與通過「試用Coffeescript」頁上的「Try Coffeescript」頁面運行代碼時生成的代碼不匹配CoffeeScript網站。 – Bradford 2012-04-10 18:37:27

+3

OS X使用unix行結尾,除非您經常編輯pre-OS X文件,您不需要「mac」,並且如果您確實需要,可以手動設置ff。 – ergosys 2012-04-10 18:38:41

回答

0

如果你的朋友沒有將TextMate設置爲使用unix行尾,他應該這樣做。然後,一旦你們都使用unix行結束,使用dos2unix來轉換您的整個回購。

你也應該確保git能正確處理crlf。看到這兩個問題: - Definitive recommendation for git autocrlf settings - Git 1.6.4 beta on Windows (msysgit) - Unix or DOS line termination

您可能還想調查模態線。雖然這些對於行結尾沒有用處,但它們對於縮進非常有用。 Vim本地支持它們並且TextMate has a plugin添加對emacs風格的支持。 (也可以使用vim can support emacs-style - 或者你可以同時使用兩者)。