使用sudo和普通权限打开gvim时配色方案显示不一致是什么原因
gvim不同启动权限配色差异的原因与解决方案
根本原因
gvim会根据当前运行的用户身份读取对应路径下的配置文件,普通用户和root用户的配置路径完全独立,因此两种启动方式加载的配色、配置都不一致:
- 配置加载路径不同
普通用户启动gvim时,默认读取当前用户家目录下的~/.gvimrc、~/.vimrc配置,以及~/.vim/目录下存放的配色、插件等资源。使用sudo gvim启动时,程序以root身份运行,会读取root用户家目录/root/.gvimrc、/root/.vimrc以及/root/.vim/下的资源。你遇到的情况大概率是美观的配色仅配置在root用户的配置文件中,普通用户没有对应的配置就会加载默认配色。
你可以分别执行以下命令查看两种身份下gvim加载的用户配置路径,对比差异:
# 查看普通用户的配置路径 gvim --version | grep 'user vimrc' # 查看root用户的配置路径 sudo gvim --version | grep 'user vimrc'
- 文件权限限制
如果你之前用root权限安装了自定义配色,相关配色文件被放在仅root可读的路径下,或文件权限设置为仅root可访问,普通用户启动时无法读取配色资源,就会自动切换到默认配色。
效果对比
- sudo启动gvim效果:

- 普通权限启动gvim效果:

修复方法
- 如果你只需要当前普通用户使用相同配色,直接把root的配置复制到普通用户家目录并修正权限即可:
sudo cp -r /root/.vim /root/.vimrc /root/.gvimrc ~/ sudo chown -R $USER:$USER ~/.vim ~/.vimrc ~/.gvimrc
- 如果你需要所有登录用户都使用该配色,把配置项写入系统全局gvim配置
/etc/vim/gvimrc,同时把配色文件放到系统级vim资源目录/usr/share/vim/vimfiles/colors/下即可。
提示:不建议直接用sudo启动gvim这类图形化程序,容易导致家目录下的文件权限被修改为root,后续普通用户操作时出现权限异常。编辑系统级配置可以用
sudo -e 配置文件路径调用默认编辑器操作,更加稳妥。
内容的提问来源于stack exchange,提问作者Amey patil
相关产品推荐
相关产品推荐

