2012-10-21 19 views
3

之間描述in this screencast,以保持我的vimrc,並在多臺機器同步插件。我遇到的問題是一臺機器正在運行ubuntu,另一臺正在運行win7。正在同步的vimrc和插件,我使用的方法UNIX和Windows機器

到目前爲止我發現了兩種類型的問題。第一個似乎是行結束。爲了讓我的Windows vimrc可以在Linux上讀取,我必須做:set fileformat=unix and write。但是,即使這樣做之後,我收到類似的行結束的問題與所有的插件:

[email protected]:~$ vim ~/.vimrc 
Error detected while processing /home/jg/.vimrc: 
line 11: 
E484: Can't open file /home/jg/vimfiles/plugin/autotag.vim 
Error detected while processing /home/jg/.vim/plugin/DrawIt.vim: 
line 60: 
E492: Not an editor command: ^M 
line 62: 
E15: Invalid expression: &cp^M 
line 1290: 
E171: Missing :endif 
Error detected while processing /home/jg/.vim/plugin/auto_number.vim: 
line 5: 
E488: Trailing characters 

我可以做類似vim ~/.vim/**/*.vim加載所有這些,然後​​以修復同樣的方式,所有的文件,但這似乎是一個可憐的方法,因爲任何時候我用一臺計算機上的vim文件更新git repo並將其從另一臺計算機中取出,我將不得不記住要執行此文件轉換。有沒有更好的辦法?

最後,在某些的vimrc配置細節,如特定的二進制文件的位置的位置,將根據在OS上是不同的。處理這些差異的最佳方法是什麼?我是否應該在if語句分支爲has(「gui_win32」)時使用.vimrc,還是有更好的方法?

謝謝!

回答

5

是的,你必須在你的vimrc增設機構有機器/ OS特定的設置。這並不像聽起來那麼骯髒:一個if/ifelse/就足夠了。

另一種方法是,讓您的機器/ OS的具體設置在一個獨立的非版本controled文件:因爲它是非常本地化的,你不需要傳播上的其他設備/操作系統的內容。

你可以把這些設置在~/.vim/vimrc.local和明確地將此文件~/.vimrc.local和來源,從你的vimrc文件添加到.gitignore或外部的回購。

Vim有在Linux上的Windows行尾的煩惱,但它並沒有在Windows下處理的Linux行尾的煩惱。只要在任何地方使用Linux線路結尾,你都會好起來的。

+2

與lineendings處理可以了Git設置的另一種方法('嘗試在Linux上混帳配置--global core.autocrlf input')。 –

相關問題