刚装完 Ubuntu 或 CentOS,想改个配置文件,随手敲 vim /etc/hosts,结果卡在黑屏里按啥都没反应——退出都得查百度。有人告诉你:“Linux 默认就带 vim”,也有人说:“默认是 vi,vim 是增强版,不一定装。”到底谁对?
先看事实:不同发行版,真不一样
Debian 和 Ubuntu 默认装的是 vim-tiny,一个阉割版 vim,支持基本操作但没语法高亮、多级撤销这些功能。你敲 vim --version 会看到一行:+tiny。
CentOS/RHEL 8+ 默认不预装 vim,只带原始的 /bin/vi(其实是 nvi 或软链接到 vim.basic),功能比 vim-tiny 还简陋,连方向键上下翻行都可能失灵。
Arch Linux 更干脆:安装时啥编辑器都不带,全靠你自己 sudo pacman -S vim 装。
那为什么总说“vi 是默认编辑器”?
因为 POSIX 标准规定,所有兼容系统必须提供 /usr/bin/vi 命令。于是发行版就用软链接“凑数”:
ls -l /usr/bin/vi
# 输出可能是:
vi -> /etc/alternatives/vi
/etc/alternatives/vi -> /usr/bin/vim.tiny看起来是 vi,实际跑的是 vim-tiny。所以你敲 vi 能用,不代表你有完整 vim。怎么一眼看出你手里的 vim 是不是“真货”?
终端里输入:
vim --version | grep "^\+" | head -5如果看到 +clipboard、+syntax、+persistent_undo 这类带加号的特性,说明是完整版 vim;全是 -clipboard 的,就是精简版或 nvi。再试个简单操作:vim 启动后按 i 进入插入模式,输几个字,然后按 Esc 回普通模式,再按 u 撤销——能撤回就是 vim;按了没反应?大概率是 vi 或 vim-tiny(它不支持 u 撤销)。
不想踩坑?三步搞定
1. 查看当前 vi/vim 实际指向:
readlink -f $(which vi)2. 如果是 vim.tiny 或 nvi,直接升级:# Ubuntu/Debian
sudo apt install vim-gtk3 # 带 GUI 支持和完整特性
# CentOS/RHEL
sudo yum install vim-enhanced # 或 dnf install vim-enhanced3. 设为默认(可选):sudo update-alternatives --config editor选 vim.gtk3 或 vim.basic 就行。一句话:Linux 没有统一“默认 vim”,只有统一“必须有 vi”。要不要好用,得你自己动手装。