Bash

如何更改vim命令的路徑

  • June 5, 2019

vim在 macOS 上安裝了兩個版本:

  • 預設版本, /usr/bin/vim,
  • 和 MacVim(通過 Homebrew)/usr/local/bin/vim,.

當我鍵入vim時,將呼叫預設程序。我想在每次鍵入時使用 MacVim vim。你知不知道怎麼?他們都使用同一個~/.vimrc文件嗎?

使用別名。

別名在您的 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中的字母 l時,可以確定文件是連結。)

可能還想設置幾個變數,程序用來呼叫預設編輯器。

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和 UnixPATH變數通過 被“綁定在一起” ,typseset因此僅source編輯為修改path變數的文件:source ~/.zprofile,例如。然後查看PATH變數以了解它是否按預期進行了修改:echo $PATH.


Homebrew 包維護者非常擅長辨識哪些軟體會導致 macOS 出現問題,如果/usr/local/bin它是路徑中的第一個,之前/usr/bin. 例如,如果 Homebrew 要安裝 GNU id,那麼軟體的名稱/usr/local/bin將是gid避免.id``/usr/bin

引用自:https://unix.stackexchange.com/questions/522875