centos默认编辑器是vi,实际调用vim-minimal;可通过设置editor环境变量、vi别名或update-alternatives统一管理,但不同命令(如crontab -e、vi)依赖机制不同,需按需验证生效范围。

CentOS 默认编辑器不是固定死的,而是由 EDITOR 环境变量或系统级替代链(update-alternatives)共同决定的;直接改 /etc/profile 或 ~/.bashrc 只影响 shell 启动时的 EDITOR,但像 crontab -e、git commit 这类命令可能仍调用 vi 别名或绕过该变量——得看具体命令怎么实现的。
确认当前默认编辑器实际被谁调用
别急着改配置,先搞清你遇到的是哪类“默认”:
-
crontab -e调用的是$EDITOR,但若未设置,会 fallback 到vi(实际是/usr/bin/vi,通常是vim-minimal) -
git commit优先读$EDITOR,其次$VISUAL,最后才是系统默认 -
systemctl edit或systemctl edit --full也依赖$EDITOR - 而
vi filename命令本身,走的是alias vi=...或/usr/bin/vi的软链接链
验证方式:运行 echo $EDITOR 和 ls -l /usr/bin/vi,再试 crontab -e 看启动的是哪个二进制。
只改 EDITOR 环境变量(最常用、最轻量)
适用于 crontab、git、sudoedit 等明确读该变量的命令:
- 临时生效:
export EDITOR=/usr/bin/vim(当前终端有效) - 用户级持久化:追加到
~/.bashrc:echo 'export EDITOR=/usr/bin/vim' >> ~/.bashrc && source ~/.bashrc - 全局生效(需 root):写入
/etc/profile.d/editor.sh(推荐),内容为export EDITOR=/usr/bin/vim,避免污染/etc/profile - 注意路径:CentOS 7/8 中
vim安装后通常在/usr/bin/vim,不是/bin/vim;可用which vim确认
让 vi 命令直接调用完整版 vim
很多脚本硬编码调用 vi,不读 EDITOR,这时要改别名或软链接:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 加 alias(推荐用户级):
echo 'alias vi=vim' >> ~/.bashrc,然后source ~/.bashrc - 系统级 alias(慎用):写入
/etc/profile.d/vi-alias.sh,内容为alias vi=vim - 改软链接(root 权限):
rm -f /usr/bin/vi && ln -s /usr/bin/vim /usr/bin/vi—— 但部分系统(如 minimal 安装)会把vi指向vim-minimal,强行替换可能导致某些依赖精简版的行为异常
执行前先查现状:ls -l /usr/bin/vi,如果是 vim-minimal,替换前建议先 yum install vim-enhanced。
用 update-alternatives 统一管理(适合多编辑器共存场景)
CentOS 支持该机制,但默认不启用;它能统一控制 vi、editor、vim 等多个命令指向:
- 先注册 vim:
update-alternatives --install /usr/bin/vi vi /usr/bin/vim-enhanced 50 - 再注册 nano(如果装了):
update-alternatives --install /usr/bin/vi vi /usr/bin/nano 40 - 交互选择:
update-alternatives --config vi - 同理可配
editor(crontab -e有时会 fallback 到这个):update-alternatives --config editor
这个方法最规范,但多数 CentOS 系统没预配置,得手动 setup;且要注意:有些老版本(如 CentOS 6)update-alternatives 不支持 vi 链,只管 editor。
真正麻烦的点不在“怎么设”,而在“设给谁用”——EDITOR 对 crontab 有效,但对 vi 命令无效;alias 对交互 shell 有效,但对 sudo -i 下的子 shell 可能失效;update-alternatives 看似全面,却要手动注册、且不同命令挂载点不同。实际操作前,务必用对应命令验证,而不是只看 echo $EDITOR。










