为什么 'vi' 命令会打开 'vim' 编辑器?

为什么 'vi' 命令会打开 'vim' 编辑器?

我正在使用 Ubuntu 12.04。我并不是在抱怨,因为我喜欢vim并且更喜欢它的许多功能。但是,我很好奇它为什么会这样。它没有别名,.bashrc或者.bash_profile.我不确定它从哪里得到了这种行为。有人可以解释一下吗?另外,出于好奇,是否可以启动经典vi

答案1

因为 Vim 是一款维护良好、兼容 vi 的开源编辑器,所以它与 Linux 完美匹配。我上次看到纯“vi”在专有 Unix 上的实现,如 SunOS、HP-UX、AIX;在 BSD 上你也可能“幸运”。(但当然,Vim 也可以安装在这些系统上。)

在 Ubuntu 上,默认安装的是精简版的 Vim(vim-tiny);足以进行 vi 风格的编辑。真正的 Vim 用户通常会安装vim-gnome完整安装的软件包,包括图形 GVIM。

答案2

vim是 的后继者vi。它代表 vi 的改进版。

/usr/bin/vi只是 vim 的一个符号链接。你可以使用以下命令查看:

ls -l /usr/bin/vi

要启动“经典 vi”:

vim -u NONE myText.txt

工作原理:vim 在 处查找配置文件~/.vimrc,如果找到,它将作为 vim 运行,除非该行set compatible出现在 .vimrc 中。为了节省编辑 .vimrc 和添加该行的时间,我们告诉 vim 不要使用该-u NONE选项查找 .vimrc。

NONE可以指定一个更适合设置 vi 的不同手写配置文件(vim 的 .vimrc 常常使 vi 混淆,因为它可能包含现代 vim 特定的附加内容。)

至于为什么 vi 是 vim 的符号链接,我只听到了人们的意见。有人说这是为了允许运行旧脚本。但我认为我很少看到在脚本中调用 vi 或 vim。其他人说这是为了让程序员在想要编辑时硬性输入 vi。

答案3

Debian 和 Ubuntu 使用符号链接指向替代方案的系统。这是使用 进行管理的update-alternatives。(man 8 update-altnernatives

您会发现/usr/bin/vi符号链接到/etc/alternatives/vi,并且 符号链接到类似 的东西/usr/bin/vim.gnome

以下命令将显示已安装的提供 vi 功能的二进制文件:

sudo update-alternatives --list vi

这将允许您以交互方式选择一个 vi 二进制文件:

sudo update-alternatives --config vi

这将允许您手动选择一个,例如:

sudo update-alternatives --set vi /usr/bin/nvi

这将让您恢复自动设置:

sudo update-alternatives --auto vi

正如其他人所说,vim 可以在 vi 兼容模式下运行,但也有一个名为 nvi 的非常基本的 vi 克隆版,您也可以安装。

sudo apt-get install nvi

相关内容