很多人刚接触Linux,一打开终端想改个配置文件,输入 vi xxx.conf 却发现打不开——不是报错,就是卡住不动。于是疑惑:vim不是Linux默认编辑器吗?怎么连基本操作都不响应?
默认的不是vim,而是vi的“壳”
严格来说,大多数Linux发行版(比如Ubuntu、CentOS、Debian)安装后,默认提供的不是vim,而是vi的一个极简实现,比如 nvi 或更常见的是 busybox vi(尤其在最小化安装或容器环境里)。它只支持最基础的命令,连方向键乱码、:wq 报错都可能遇到。
而你熟悉的 vim(带语法高亮、多级撤销、插件支持的那个),其实是单独安装的。Ubuntu里运行 vim --version,十有八九会提示 Command 'vim' not found;但 vi --version 可能显示 nvi 1.81.6 或类似结果。
为什么大家总觉得“vim是默认的”?
因为很多教程、老手文档里直接写 vi /etc/hosts,新手照着敲,发现能进、能删、能存,就以为“vi=vim”。其实你用的只是vi的兼容模式——vim本身在安装后通常会通过软链接把 vi 命令指向自己,比如:
ls -l /usr/bin/vi
/usr/bin/vi -> /etc/alternatives/vi
/etc/alternatives/vi -> /usr/bin/vim.basic这个链路说明:系统用的是替代机制(alternatives),vi 这个名字可以指向不同程序,不等于它天生就是vim。
实测小技巧:三秒判断你用的是啥
在终端里敲:
echo $VISUAL
vi --version
which vi
which vim如果 which vim 返回空,或者 vi --version 显示 “nvi”、“elvis”、“busybox”,那恭喜你,当前系统里没装vim,你正在用一个精简版vi。
推荐做法:装一个靠谱的vim
Ubuntu/Debian系:
sudo apt update && sudo apt install vimCentOS/RHEL/Fedora:
sudo yum install vim-enhanced装完再试 vi --version,就能看到 VIM - Vi IMproved 和一堆特性列表了。这时候按 i 进入插入模式、Esc 回命令模式、:q! 强制退出,才真正顺手。
说到底,vim不是Linux自带的“出厂设置”,而是用户根据需求主动装上的实用工具。就像新买的手机没预装微信,得你自己点开应用商店下载一样自然。