删除 vi 后为什么会出现此错误?“未找到 vim,正在使用 vi”

删除 vi 后为什么会出现此错误?“未找到 vim,正在使用 vi”

我在 Fedora 33 服务器上。我已删除vi并安装了vim-enhanced

dnf remove vi
dnf install vim-enhanced

vim但是我在使用命令时收到此错误:

[root@localhost ~]# vim
No vim found, using vi, press ENTER to continue
-bash: vi: command not found
[root@localhost ~]#

我的样子如下$PATH

[root@localhost ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/lib/snapd/snap/bin
[root@localhost ~]#

虽然 /usr/bin 路径存在,但每次我需要执行命令$PATH时都必须明确写入路径:vim

[root@localhost ~]# /usr/bin/vim

请帮我了解发生了什么事。

答案1

在Fedora 33 Server中, command默认vim是的别名,当我们运行command时可以看到它:viwhich vim

[root@localhost ~]# which vim
alias vim='read -rep $'\''No vim found, using vi, press ENTER to continue\n'\'' -n1 -t 20 -s && vi'
        /usr/bin/read
[root@localhost ~]#

或者直接执行alias命令:

[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vim='read -rep $'\''No vim found, using vi, press ENTER to continue\n'\'' -n1 -t 20 -s && vi'
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'
[root@localhost ~]#

解决问题的方法是,我们只需要vim像这样取消斜线:

[root@localhost ~]# unalias vim
[root@localhost ~]#

此后该vim命令将照常工作。

相关内容