发布于2026-08-12 阅读(0)
扫一扫,手机访问
CentOS 7默认vi指向vim-minimal,功能受限;应通过update-alternatives注册并切换vi指向vim-enhanced,同时设置EDITOR环境变量为/usr/bin/vim,二者缺一不可。

CentOS 7 默认的 vi 命令指向的是 vim-minimal,功能受限(不支持语法高亮、鼠标、方向键异常等),直接改用 vim 是最实际的解法——但要注意:改 vi 别名 ≠ 改系统级默认编辑器,两者作用范围不同,必须分清楚。
先查清楚你敲 vi 时到底启动了什么:
ls -l /usr/bin/vi
常见输出是:/usr/bin/vi -> /etc/alternatives/vi,再追一层:
ls -l /etc/alternatives/vi
很可能指向 /usr/bin/vim.minimal。这才是问题根源——不是没装 vim,而是系统通过 alternatives 机制锁死了默认行为。
别急着改 alias,先解决这个底层映射。
这是 CentOS 7 最新推荐方式,影响所有用户和系统命令(比如 systemctl edit、visudo):
update-alternatives --config viupdate-alternatives --install /usr/bin/vi vi /usr/bin/vim-enhanced 1--config vi,选择 /usr/bin/vim-enhanced 对应编号vi --version 应显示 “VIM - Vi IMproved” 而非 “tiny” 或 “minimal”⚠️ 注意:vim-enhanced 必须已安装(yum install vim-enhanced),只装 vim-minimal 不够。
很多工具(如 crontab -e、git commit)读取的是 $EDITOR,和 vi 命令无关:
export EDITOR=/usr/bin/vimecho 'export EDITOR=/usr/bin/vim' >> ~/.bashrc && source ~/.bashrcecho 'export EDITOR=/usr/bin/vim' >> /etc/profile.d/editor.sh⚠️ 别写成 export EDITOR=vim——没路径可能导致找不到;也别漏掉 source,否则新终端里不生效。
网上流传的 echo "alias vi=vim" >> /etc/profile 看似简单,但有硬伤:
sudo vi、su -c vi、脚本里的 vi 都不走 aliasvim 命令本身指向 vim-minimal(某些精简镜像会这样),alias 后还是不好用>> 写错成 > 会清空整个 /etc/profile,直接导致登录失败真正需要的不是 alias,而是让 vi 这个名字背后真正跑起来的是完整版 vim——这靠 update-alternatives 才能兜底。
这里最容易被忽略、但偏偏最要命的点就在于:update-alternatives --config vi 和 export EDITOR=... 这两步一定要配套完成,少了哪一个都不行。前者决定的是在命令行里直接输入 vi 时到底调用谁;后者影响的则是各种子系统和程序的默认编辑器选择。只做其中一步,表面上看似已经改好了,但一到某些场景,还是会冷不丁跳出 nano 或者 vim-tiny。
下一篇:CentOS怎么查看系统版本号
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9