在Fedora上用Vim全局替换Vi


8

在基于Debian的系统上,Alternatives系统同时处理vivim可执行文件。因此,如果vim安装并执行vi,那么您也会得到vim,我觉得很好,因为我绝对讨厌classic vi

在Fedora 17“ Beefy Miracle”上,替代系统显然不能同时解决这两个问题。但是有一个配置文件,/etc/profile.d/vim.sh其中添加了一个shell别名来vi执行vim。由于某些原因,它对系统用户(包括root用户)不执行此操作。

但是,即使我手动为所有用户设置了别名,当我打电话时,sudo vi我也开始使用classic vi而不是vim。那可能是因为sudo不能启动shell或配置文件仅在交互式shell会话中执行。

我现在正在寻找的是一种vi完全卸载classic的方法,以使符号链接甚至在系统更新后也不会丢失。如何删除经典vi但不能删除vimFedora 17?还是有更好的方法?

更新:据yum provides vi我发现vi,该包装提供了该包装vim-minimal。但是我不能简单地删除它,因为它会自动删除它的包sudo。即使我确实将其删除,然后尝试再次安装sudovim-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

rm /usr/bin/vi; ln -s /usr/bin/vim /usr/bin/vi。这不是一个答案,因为我个人会找到一种更好的方法(如果需要,可以输入vim)。
jordanm 2012年

@jordanm当我要求进行符号链接更新后,我的意思就是这样。如何确保vim-minimal更新软件包时链接不会被覆盖?
2012年

/usr/bin/viFedora上的符号链接(指向什么)或常规文件?如果是常规文件,来自什么包?
吉尔(Gilles)'所以

@吉尔斯,我不明白你的问题。
2012年

发布的输出ls -l /usr/bin/virpm -qf /usr/bin/vi
吉尔(Gilles)“所以,别再作恶了”

Answers:


6

Your 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

这实际上是一个非常好的主意。
aef

2
甚至可以通过简单地与建立符号链接来工作sudo ln -s /usr/bin/vim /usr/local/bin/vi。但是您必须在中将配置添加/usr/local/binDefaults secure_path="…"配置的最左侧visudo,否则将找不到符号链接。
2012年

我认为这里的语法中有一些错别字。您的意思是cat >/usr/local/bin/vi(不是cat >/usr/local/bin)?您的意思是chmod 755 /usr/local/bin/vi(不是.../vim)?
DW

要使用root的默认PATH进行选择,请在创建符号链接/usr/local/sbin/vi
hackel

5

# echo 'alias vi="vim"' >> /etc/bashrc' 要么 # alternatives --install /usr/bin/vi vi /usr/bin/vim 900


vim-minimal更新软件包时,这些内容不会被删除吗?
2012年

在上面创建别名.bashrc是一个好习惯...对我来说@llua给了很好的答案
maniat1k 2013年

0

FYI最近的fedora(在自18至少)安装在gobally该别名/etc/profile.d一旦vim-enchanced被安装。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.