如何在不执行 /etc/vimrc 的情况下启动 vim?

如何在不执行 /etc/vimrc 的情况下启动 vim?

在我工作的 Linux 服务器上,管理员没有安装 cscope,我从主目录中的源代码安装了它,并将其添加到 $PATH。问题是,/etc/vimrc 引用了不存在的 /usr/bin/cscope,每次我启动 vim 时,它都会抱怨这一点,我必须按 才能让该消息消失。

有趣的是,如果我从我的 $PATH 中删除 cscope,我不会得到那种行为 - 所以有可能 vim 正在测试 cscope 是否存在于某处,然后才执行 cscope 配置 - 但随后它就出错了!

所以我的问题是:我可以在 .vimrc 中设置一些东西,以便它不获取全局 /etc/vimrc 吗?我不想将 cscope 移出 PATH,因为我不想每次从命令行运行它时都输入完整的目录名。

答案1

来自Vim 手册页

-u {vimrc}

Use the commands in the file {vimrc} for initializations. All the other
initializations are skipped. Use this to edit a special kind of files.
It can also be used to skip all initializations by giving the name "NONE".
See ":help initialization" within vim for more details.

如果您仍希望~/.vimrc处理您的请求,请尝试以下操作:

vim -u ~/.vimrc

将以下行添加到~/.bashrc(或如果不是 bash,则添加 shell 的等效文件) 以-u自动添加开关:

alias vim="vim -u ~/.vimrc"

您将无法添加某些内容以~/.vimrc防止/etc/vimrc被读取,因为系统文件在您的用户文件之前被处理(请参阅:help init,第 3 节“从环境变量和/或文件执行 Ex 命令”)。

答案2

来自Vim 手册页

-u {vimrc}

使用文件 {vimrc} 中的命令进行初始化。所有其他初始化都会被跳过。使用此选项可编辑特殊类型的文件。它还可用于通过指定名称“NONE”来跳过所有初始化。有关更多详细信息,请参阅 vim 中的“:help initialization”。

因此这应该可以完成这个工作:

vim -u NONE

您应该能够将其设置为您日常使用的正常命令的别名。

相关内容