vim
macOS に の2 つのバージョンがインストールされています。
- デフォルトバージョン
/usr/bin/vim
、、 - および MacVim (Homebrew 経由)
/usr/local/bin/vim
。
と入力するとvim
、デフォルトのプログラムが呼び出されます。 と入力するときは常に MacVim を使用したいと思いますvim
。方法をご存知ですか? どちらも同じ~/.vimrc
ファイルを使用するのですか?
答え1
別名を使用します。
エイリアスは、 などの BASH RC ファイルの 1 つで定義されます~/.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である場合、そのファイルはリンクであると判断できます。lrwxr-xr-x.)
プログラムがデフォルトのエディターを呼び出すために使用するいくつかの変数を設定することもできます。
EDITOR='/usr/local/bin/vim'
VISUAL='/usr/local/bin/vim'
シェルの RC ファイルに定義を追加した後、source ~/.bashrc
または BASH 構成に適したファイルを使用して、RC ファイルをソースし、新しいエイリアスを取得します。 コマンド は、command -v vim
出力が次のようになると、エイリアスが作成されたことを示します。
alias vim=/usr/local/bin/vim
の両方のバージョンで同じ VIM RC ファイルが使用されますvim
。
バイナリ実行可能ファイルの代わりにシンボリック リンクを指す利点は、MacVim のアップグレードごとにエイリアスを更新する必要がないことです (これは頻繁に発生します)。brew update && brew upgrade
たとえば、Homebrew では、アップグレードが で実行されたときに、シンボリック リンクが正しいバイナリ実行可能ファイルを指すように維持されます。
システム バージョン は、/usr/bin/vim
そのままにしておく必要があります。System Integrity Protection (SIP) を無効にしない限り、削除または変更することはできません。 と入力してシステム バージョンを使用することは可能ですが/usr/bin/vim
、 と入力するvim
と が呼び出されます/usr/local/bin/vim
。
パスを変更します。
Homebrew 経由でインストールされたすべてのソフトウェアに機能する別の方法は、 を変更して、PATH
Homebrew によってインストールされたすべてのソフトウェアが の最初に来るようにすることです。まず、どのRC ファイルにすでにパスの定義が含まれているかPATH
を知る必要があります。zsh
cd
grep path .z*
結果の 1 つに が含まれる場合があります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
/usr/local/bin
Homebrew パッケージのメンテナーは、 がパスの先頭にあり、 より前にある場合に、どのソフトウェアが macOS で問題を引き起こすかを認識するのが非常に得意です/usr/bin
。たとえば、Homebrew が GNU をインストールする場合id
、 のソフトウェアの名前は に/usr/local/bin
なり、のgid
BSD の問題を回避します。id
/usr/bin
答え2
brew の標準では、コマンドが最初に取得されるように、システム ディレクトリの前に次のように/usr/local/bin
配置します。PATH
/usr/bin