知玩指南
白蓝主题五 · 清爽阅读
首页  > 驱动工具

vim 是 Linux 系统默认编辑器吗?别被“vi”骗了

刚装完 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-enhanced
3. 设为默认(可选):
sudo update-alternatives --config editor
选 vim.gtk3 或 vim.basic 就行。

一句话:Linux 没有统一“默认 vim”,只有统一“必须有 vi”。要不要好用,得你自己动手装。