CentOS 7默认vi指向vim-minimal,功能受限;应通过update-alternatives注册并切换vi指向vim-enhanced,同时设置EDITOR环境变量为/usr/bin/vim,二者缺一不可。

CentOS 7怎么修改默认编辑器为vim

CentOS 7 默认的 vi 命令指向的是 vim-minimal,功能受限(不支持语法高亮、鼠标、方向键异常等),直接改用 vim 是最实际的解法——但要注意:改 vi 别名 ≠ 改系统级默认编辑器,两者作用范围不同,必须分清楚。

确认当前 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,先解决这个底层映射。

用 update-alternatives 切换 vi 的实际指向

这是 CentOS 7 最新推荐方式,影响所有用户和系统命令(比如 systemctl editvisudo):

⚠️ 注意:vim-enhanced 必须已安装(yum install vim-enhanced),只装 vim-minimal 不够。

设置 EDITOR 环境变量(影响 crontab、git、sudo -e 等)

很多工具(如 crontab -egit commit)读取的是 $EDITOR,和 vi 命令无关:

⚠️ 别写成 export EDITOR=vim——没路径可能导致找不到;也别漏掉 source,否则新终端里不生效。

别 alias vi 到 vim(除非你明确知道后果)

网上流传的 echo "alias vi=vim" >> /etc/profile 看似简单,但有硬伤:

真正需要的不是 alias,而是让 vi 这个名字背后真正跑起来的是完整版 vim——这靠 update-alternatives 才能兜底。

这里最容易被忽略、但偏偏最要命的点就在于:update-alternatives --config viexport EDITOR=... 这两步一定要配套完成,少了哪一个都不行。前者决定的是在命令行里直接输入 vi 时到底调用谁;后者影响的则是各种子系统和程序的默认编辑器选择。只做其中一步,表面上看似已经改好了,但一到某些场景,还是会冷不丁跳出 nano 或者 vim-tiny。

本文转载于:https://www.php.cn/faq/2962132.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。