在基于 Debian 的系统上,替代系统同时处理vi
和vim
可执行文件。因此,如果vim
安装并执行vi
,您也会得到vim
,我觉得这很好,因为我绝对讨厌 classic vi
。
在 Fedora 17“Beefy Miracle”上,替代系统显然无法处理这两者中的任何一个。但是有一个配置文件,/etc/profile.d/vim.sh
其中添加了一个 shell 别名来vi
执行vim
。由于某种原因,它不会为系统用户(包括 root 用户)执行此操作。
但即使我手动为所有用户设置别名,当我打电话时,sudo vi
我会启动 classicvi
而不是vim
.这可能是因为 sudo 不会启动 shell 或配置文件仅在交互式 shell 会话中执行。
我现在正在寻找一种vi
完全卸载经典的方法,以创建甚至在系统更新后仍然存在的符号链接。如何删除经典版vi
但不在vim
Fedora 17 上?或者还有更好的方法吗?
更新:yum provides vi
我发现是vi
包里提供的vim-minimal
。但我不能简单地删除它,因为它会自动删除它所sudo
在的包。即使我删除了它,然后尝试sudo
再次安装,vim-minimal
也会再次作为依赖项安装。
更新:根据要求,输出rpm -qf /usr/bin/vi
:
vim-minimal-7.3.444-1.fc17.x86_64
和ls -l /usr/bin/vi
:
-rwxr-xr-x. 1 root root 782248 13. Feb 2012 /usr/bin/vi
答案1
你vi
是Vim,但调用为vi
,因此它进入历史兼容模式。建议的操作是,如果您想运行 Vim 而不是 vi,请运行vim
而不是vi
。但是,如果您希望vi
始终在系统上的每个帐户上运行 Vim,请在以下位置覆盖它/usr/local/bin
:
cat >/usr/local/bin/vi <<\EOF
#!/bin/sh
exec /usr/bin/vim "$@"
EOF
chmod 755 /usr/local/bin/vi
答案2
# echo 'alias vi="vim"' >> /etc/bashrc'
或者# alternatives --install /usr/bin/vi vi /usr/bin/vim 900
答案3
仅供参考,最近的 Fedora(至少自 18 以来)安装了该别名 gobally/etc/profile.d
一次vim-enchanced
。