如何更改vim命令的路径

如何更改vim命令的路径

vim我在 macOS 上安装了两个版本:

  • 默认版本/usr/bin/vim,,
  • 和 MacVim(通过 Homebrew)/usr/local/bin/vim,.

当我输入 时vim,将调用默认程序。我想每次打字时都使用 MacVim vim。你知不知道怎么?他们都使用同一个~/.vimrc文件吗?

答案1

使用别名。

别名在您的 BASH RC 文件之一中定义,例如~/.bashrc.下面,如果/usr/local/bin/vim是符号链接,则创建一个名为 的别名vim

if [ -h '/usr/local/bin/vim' ]; then
    alias vim='/usr/local/bin/vim'
fi

可以应用相同的逻辑如下。

[ -h '/usr/local/bin/vim' ] && alias vim='/usr/local/bin/vim'
  • -h测试文件是否是符号链接,使用 Homebrew 时可能会出现这种情况。
  • -x测试文件是否是常规可执行文件。

ls -l(当文件权限的第一个字母显示为字母 l 时,可以确定该文件是链接rwxr-xr-x。)

人们可能还想设置一些程序用来调用默认编辑器的变量。

EDITOR='/usr/local/bin/vim'
VISUAL='/usr/local/bin/vim'

将定义添加到 shell 的 RC 文件后,获取 RC 文件以选择新别名source ~/.bashrc或适合您的 BASH 配置的文件。命令command -v vim,显示别名已创建,其输出如下。

alias vim=/usr/local/bin/vim

两个版本的vim.

指向符号链接而不是二进制可执行文件的优点是,不需要在每次升级 MacVim 时更新别名,而这种情况经常发生。brew update && brew upgrade例如,当使用 执行升级时,Homebrew 会保留指向正确的二进制可执行文件的符号链接。


系统版本/usr/bin/vim应该保留在原来的位置。如果不禁用系统完整性保护 (SIP),则无论如何都无法删除或更改它。仍然可以通过键入 来使用系统版本/usr/bin/vim,但是,键入viminvokes /usr/local/bin/vim


修改路径。

另一种适用于通过 Homebrew 安装的所有软件的方法是修改 ,PATH以便 Homebrew 安装的所有软件都位于PATH.首先,需要知道哪个zshRC 文件已经包含路径的定义。

cd
grep path .z*

结果之一可能包括fpath.这不是正确的变量。我们正在寻找一个名为 的小写变量path。推导出要编辑的文件的名称(可能是~/.zshrc或 )后~/.zprofile,更改变量的值path。例如,path下面首先定义/usr/local/bin/usr/local/sbin,然后是主目录中的脚本或程序,最后是系统已定义的路径的其余部分。

path=(
    /usr/local/{bin,sbin}
    $HOME/bin
    $path
)

由此产生的 UnixPATH变量将定义如下。

/usr/local/bin:/usr/local/sbin:/Users/$username/bin:/usr/bin:/bin:/usr/sbin:/sbin

zsh path和 Unix变量PATH通过 ”绑定在一起” typseset,因此只需source编辑修改变量的文件pathsource ~/.zprofile例如。然后查看该PATH变量以了解它是否按预期进行了修改:echo $PATH


Homebrew 软件包维护者非常擅长识别如果/usr/local/bin是路径中的第一个(在 之前)哪个软件会导致 macOS 出现问题/usr/bin。例如,如果 Homebrew 要安装 GNU id,那么 中的软件名称/usr/local/bin将是gid为了避免id中的BSD 问题/usr/bin

答案2

使用brew 的标准是像这样放置/usr/local/bin之前PATH的系统目录/usr/bin,以便首先获取它的命令。

相关内容