在 Fedora 上将 Vi 全局替换为 Vim

在 Fedora 上将 Vi 全局替换为 Vim

在基于 Debian 的系统上,替代系统同时处理vivim可执行文件。因此,如果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但不在vimFedora 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

相关内容