我想为 vi 创建一个符号链接,以便在从控制台运行 vim 调用时查看该程序:
ln -s /usr/bin/vi /usr/bin/vim`
ln: failure to create symbolic link «/ usr / bin / vim»: The file already exists
我该怎么做才能看到它指向 vim
答案1
鉴于您的 CentOS 原始标签,我假设您有一个/etc/profile.d/vim.sh
设置别名的文件:
alias vi >/dev/null 2>&1 || alias vi=vim
如果你想vi
在输入时运行vim
,我建议添加到你自己的~/.bashrc
:
unalias vi
alias vim=vi
答案2
解决方案:
您可以使用 -f 强制删除目标文件(在更改任何内容之前进行测试!)
ln -sf /usr/bin/vi /usr/bin/vim
对我有用!
例子:
[root@vvek-workstation grep]# ln -ss ./vi ./vim
ln: failed to create symbolic link ‘./vim’: File exists
[root@vvek-workstation grep]# ln -sf ./vi ./vim
[root@vvek-workstation grep]# ls -lart
total 0
drwxr-xr-x. 9 root root 228 Mar 20 15:20 ..
-rw-r--r-- 1 root root 0 Mar 20 16:00 vi
lrwxrwxrwx 1 root root 4 Mar 20 16:00 vim -> ./vi
drwxr-xr-x 2 root root 27 Mar 20 16:00 .
答案3
是的,如果您已经有/usr/bin/vim
,则该目录中不能再有同名的文件。但是,/usr/bin
(通常)不是检查可执行文件的唯一位置。
运行echo $PATH
以从左到右查看已检查的目录列表。希望您能在那里找到类似的/home/(username)/bin
位置/usr/local/bin
。在这种情况下,
ln -s /usr/bin/vi /usr/local/bin/vim
将覆盖所有用户的默认 vim。 (他们仍然可以打电话/usr/bin/vim
索取原件。)