2012-08-23 18 views
7

在今天之前我使用/etc/vim/vimrc來配置我的vim設置。今天我想到了創建.vimrc文件。所以,我用在創建〜/ .vimrc後打開文件出錯

touch .vimrc 
cat /etc/vim/vimrc > .vimrc 

所以,現在當我打開任何文件用vim我收到以下錯誤:

Error detected while processing /home/ronnie/.vimrc: 
line 68: 
E122: Function SplitColors already exists, add ! to replace it 
line 77: 
E122: Function ChangeColors already exists, add ! to replace it 
line 171: 
E174: Command already exists: add ! to replace it 
line 174: 
E174: Command already exists: add ! to replace it 
Press ENTER or type command to continue 

我已經位於我的系統都/etc/vim/vimrc.vimrc文件。所以,這是我得到這個錯誤的原因,因爲從現在開始,我只想用.vimrc來配置我的vim設置。

回答

11

你定義具有相同的名稱爲一些已經定義的功能。在function之後添加一個感嘆號「覆蓋」以前的定義,並在您的情況下將停止顯示錯誤消息。

3

爲什麼不添加!建議你的函數定義?它會讓vim停止抱怨。

另外,您可以刪除/那些定義等/ vim的/的vimrc

3

問題是/etc/vim/vimrc.vimrc都來源。這取決於幾個因素;詳見:help .vimrc

一般來說,系統範圍的Vim配置應該駐留在前一個文件中,並且您的個人定製在後者中。對於單用戶系統來說,沒有什麼區別,但是您將這些東西移到主目錄中是正確的。只需從前一個文件中刪除重複的功能等,或者如果您將所有內容都移動到了.vimrc,就可以將其完全刪除。

+0

這是真正的答案......解決方法:只要把的〜/ .vimrc的內容在/ etc/vim的/的vimrc和刪除的〜/ .vimrc ...完成 –

+1

@ ScottStensland:這很務實,但不正確。系統和個人配置應保持獨立,以避免系統更新時出現工作或數據丟失。 –

4

這是通過示例的解決方案,因爲大多數答案都是正確的,但它們並不直接幫助您解決問題。感興趣的領域以粗體顯示。

「與重新定義代碼發出

功能 CloseDuplicateTabs()endfunction可寫

命令 CloseDupTabs:調用CloseDuplicateTabs()

」 與覆蓋固定碼

功能! CloseDuplicateTabs()endfunction

command! CloseDupTabs:調用CloseDuplicateTabs()