如何更改vim命令的路徑
我
vim
在 macOS 上安裝了兩個版本:
- 預設版本,
/usr/bin/vim
,- 和 MacVim(通過 Homebrew)
/usr/local/bin/vim
,.當我鍵入
vim
時,將呼叫預設程序。我想在每次鍵入時使用 MacVimvim
。你知不知道怎麼?他們都使用同一個~/.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
,但是鍵入vim
invokes/usr/local/bin/vim
。修改路徑。
另一種適用於通過 Homebrew 安裝的所有軟體的方法是修改 ,
PATH
以便 Homebrew 安裝的所有軟體首先在PATH
. 首先,需要知道哪個zsh
RC 文件已經包含了路徑的定義。cd grep path .z*
結果之一可能包括
fpath
. 這不是正確的變數。我們正在尋找一個名為 的小寫變數path
。在推斷出要編輯的文件的名稱(可能是~/.zshrc
或~/.zprofile
)之後,更改path
變數的值。例如,path
下面首先定義/usr/local/bin
和/usr/local/sbin
,然後是主目錄中的腳本或程序,最後是系統已經定義的路徑的其餘部分。path=( /usr/local/{bin,sbin} $HOME/bin $path )
然後將生成的 Unix
PATH
變數定義如下。/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 要安裝 GNUid
,那麼軟體的名稱/usr/local/bin
將是gid
避免.id``/usr/bin