如何更改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,以便首先取得它的指令。

相關內容