2011-07-25 29 views
5

即使在Windows上,Matlab .m文件也使用Unix LF行結束符。我期望設置git配置文件,以便.m文件是而不是作爲其他常規文本文件將轉換回CRLF(即我使用LF作爲回購內的默認樣式,即使其Windows )。沒有爲.m matlab文件做git CRLF轉換?

可以這樣做嗎?

編輯:從Matlab 2008b手冊。 (在編輯和調試M文件下)

在MATLAB軟件提供的文件中刪除的行結束符 Windows平臺;在記事本應用

在以前的版本中查看的影響,提供MATLAB文本文件爲Windows 平臺包括在每個 行的末尾回車和換行。從R2007b開始,MATLAB提供的文本文件不包含 ,在每行的末尾包含回車符和換行符。

受影響的文件類型包括: .ASC 蝙蝠 .C .CC 文件Freehand 的.cpp .DEF 。對於 gs.rights .H 的.ini .M .mdl文件 特等 自述 .tlc .tmf .TXT

沒有影響,如果你查看MATLAB中的文件和其他常見的 文本編輯器,已知除Microsoft Notepad 應用程序外。

兼容性注意事項。如果您使用記事本應用程序查看 查看MATLAB文件的文件,您會看到回車符和換行符號,而不是行尾。這使得記事本應用程序中的文件在 中的可讀性降低。其他文本編輯器可能會顯示符號 而不是行尾,但是測試的常見文本編輯器中沒有找到 。

作爲記事本應用程序的替代方法,請使用隨Windows平臺提供的Microsoft 寫字板應用程序或其他文本 編輯器查看這些文件。

+3

順便說一句你確定第一條語句?在我的Windows機器上,MATLAB默認創建帶有CRLF行尾的文件... – Amro

+0

@Amro:在我的機器上它是,但我會問,看看是否有一個'隱藏'的Matlab設置。 –

+0

在Windows上的LF標準化中添加了Matlab幫助文件中的提取。 –

回答

3

在Windows上將core.autocrlf配置設置爲false,將core.eol設置爲lf

[core] 
    autocrlf = false 
    eol = lf 

而且,看看gitattributesChecking-out and checking-in

+1

所以在gitattributes我需要'* .m eol = lf'呢? (與手冊頁中的* .sh示例相同) –

+0

@Philip Oakley - 是的,您可以在'.gitattributes'中使用'* .m eol = lf' – manojlds

+0

:@manojlds:是不是'autocrlf = true'一般Windows文本文件在歸檔中被標準化爲LF,然後在工作目錄中檢出爲CRLF? [.gitattributes文件在檢出時捕獲matlab文件是不同的] –

0

變化autocrlf爲false。將core.whitespace設置爲cr-at-eol(這將確保您不會將^ M突出顯示爲diffs和patches中有問題的空白)。使用vim或其他編輯器確保你的.m文件中有lfs。