9

在今天之前,我/etc/vim/vimrc用来配置我的 vim 设置。今天我想创建.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 设置。

4

4 回答 4

14

您正在定义与已定义的某些名称相同的函数。在“覆盖”之前的定义之后添加感叹号function,在您的情况下将停止显示错误消息。

于 2012-08-23T21:42:26.180 回答
6

这是示例解决方案,因为上面的大多数答案都是正确的,但它们并不能直接帮助您解决问题。感兴趣的领域以粗体表示。

" 有重定义问题的代码

函数CloseDuplicateTabs() 结束函数

命令CloseDupTabs :调用 CloseDuplicateTabs()

" 带有覆盖的固定代码

功能!CloseDuplicateTabs() 结束函数

命令!CloseDupTabs :调用 CloseDuplicateTabs()

于 2014-07-26T17:14:36.230 回答
4

问题是两者/etc/vim/vimrc都有.vimrc来源。这取决于几个因素;详情见:help .vimrc

一般来说,系统范围的 Vim 配置应该驻留在前一个文件中,而您的个人定制应该驻留在后者中。对于单用户系统,没有太大区别,但是您将这些内容移到主目录中是正确的。只需从以前的文件中删除重复的函数等,或者如果您已将所有内容移动到您的.vimrc.

于 2012-08-24T07:21:51.553 回答
4

为什么不加!按照建议您的功能定义?它会让 vim 停止抱怨。

或者,您可以从 /etc/vim/vimrc 中删除这些定义

于 2012-08-23T21:26:07.830 回答