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

flo*_*rin 110 unix vim vimrc

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

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

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

hea*_*vyd 110

Vim 手册页

-u {vimrc}

使用文件 {vimrc} 中的命令进行初始化。跳过所有其他初始化。使用它来编辑一种特殊类型的文件。它还可用于通过指定名称“NONE”来跳过所有初始化。更多细节参见 vim 中的 ":help 初始化"。

所以这应该可以完成工作:

vim -u NONE
Run Code Online (Sandbox Code Playgroud)

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

  • `vim -u ~/.vimrc` (3认同)

小智 87

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.
Run Code Online (Sandbox Code Playgroud)

如果你仍然希望你的 ~/.vimrc 被处理,试试这个:

vim -u ~/.vimrc
Run Code Online (Sandbox Code Playgroud)

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

alias vim="vim -u ~/.vimrc"
Run Code Online (Sandbox Code Playgroud)

你将无法在 ~/.vimrc 中添加一些东西来防止 /etc/vimrc 被读取,因为系统文件在你的用户文件之前被处理(参见 ":help init", section 3, "Execute Ex commands,来自环境变量和/或文件”)。