vi 显示为 vim

Moh*_*mad 5 vim

当我输入vi终端时,它显示以下显示:

六

请注意,它说的是 vim 而不是 vi,我确定我还没有下载 vim 并且这实际上是 vi 而不是 vim:例如,箭头键打印 ABCD 而不是移动。

gol*_*cks 25

而原来vi仍然可用,我不认为这是目前Linux或BSD发行大量使用; 1显然,它在 10 年前被封存后于 2000 年被清除,最后一次发布是 2005 年。

周围有各种vi 的实现,现在它确实是一个POSIX 规范。这些包括nvielvis,但最流行的可能是vim

在使用 vim 的系统上,vi它只是一个软链接,当以这种方式调用时,它应该以 vi 兼容模式启动,因此系统具有符合 POSIX 规范的内容。但是,这不会改变程序的实际名称,即 vim,这就是您在标题屏幕上看到的名称。


1. 虽然它至少在 Arch可用。你也可能在其他地方找到它。


hee*_*ayl 15

如果您使用的是 Debian,则因为in的条目而vi打开。让我为你分解一下。vimvi/etc/alternatives

当你这样做时ls -l /usr/bin/vi

lrwxrwxrwx 1 root root 20 Jul  1  2014 /usr/bin/vi -> /etc/alternatives/vi
Run Code Online (Sandbox Code Playgroud)

如您所见,vi二进制文件是指向/etc/alternatives/vi.

现在如果你这样做ls -l /etc/alternatives/vi

lrwxrwxrwx 1 root root 18 Jul  1  2014 /etc/alternatives/vi -> /usr/bin/vim.basic
Run Code Online (Sandbox Code Playgroud)

它是指向二进制文件的符号链接vim.basic

所以,简而言之:/usr/bin/vi/etc/alternatives/vi/usr/bin/vim.basic

结果如果你vi在shell中输入,vim.basic就会打开。

您可以/etc/alternatives通过命令检查和更改中的值,update-alternatives但我认为您的原始问题已经得到解答。


Ran*_*832 8

在许多 Linux 系统上,默认vi确实是 Vim 的一个版本,与安装 Vim 包时所获得的选项相比,通常使用更少的选项编译(没有内置的 perl 和 python 支持,没有 GUI 等)。

例如箭头键打印 ABCD 而不是移动。

这是由于您的终端模拟器与 Vim 对所使用的 terminfo/termcap 条目的理解不一致造成的。通常,这是由于 Vim 发送了t_ks代码以“启用”箭头键(实际上是将它们置于发送<1b>OA而不是 的模式中<1b>[A),但预期的键用于其他模式(例如t_ku=<1b>[A向上箭头)。尝试更改您的 TERM 环境变量或 vim 选项(set term=builtin_ansibuiltin_xterm在 vimrc 中可能有效,尽管它可能会禁用颜色),使用不同的终端,或作为最后的手段添加set t_ks= t_ke=到您的.vimrc文件以禁用此模式切换。这是 vim 帮助文件中的建议解决方案,在:help cs7-problem.

这种行为绝不是“实际上是 vi 而不是 vim”的迹象——大多数现代“正版”版本的 vi 或 nvi 也支持箭头键。


azz*_*zid 5

原来的问题已经回答了,说明 vi 是 vim 的别名,命令 vi 启动 vim 是正常的。

应该注意的是,vim(在某些设置中)对调用它的名称很敏感。即使vivim两者执行相同的二进制他们可以表现不同。