vimコマンドのパスを変更する方法

vimコマンドのパスを変更する方法

vimmacOS に の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 経由でインストールされたすべてのソフトウェアに機能する別の方法は、 を変更して、PATHHomebrew によってインストールされたすべてのソフトウェアが の最初に来るようにすることです。まず、どのRC ファイルにすでにパスの定義が含まれているかPATHを知る必要があります。zsh

cd
grep path .z*

結果の 1 つに が含まれる場合がありますfpath。これは正しい変数ではありません。 という名前の小文字の変数を探しています。 またはのpathいずれかである可能性が高い編集するファイルの名前を推測した後、変数の値を変更します。たとえば、以下では、最初にと を定義し、次にホーム ディレクトリ内のスクリプトまたはプログラム、最後にシステムによって既に定義されているパスの残りの部分を定義します。~/.zshrc~/.zprofilepathpath/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 pathUnixPATH変数は によって「結合」されているためtypseset、たとえば、変数をsource変更するために編集されたファイルのみになります。次に、変数 を調べて、期待どおりに変更されたかどうかを確認します。pathsource ~/.zprofilePATHecho $PATH


/usr/local/binHomebrew パッケージのメンテナーは、 がパスの先頭にあり、 より前にある場合に、どのソフトウェアが macOS で問題を引き起こすかを認識するのが非常に得意です/usr/bin。たとえば、Homebrew が GNU をインストールする場合id、 のソフトウェアの名前は に/usr/local/binなり、のgidBSD の問題を回避します。id/usr/bin

答え2

brew の標準では、コマンドが最初に取得されるように、システム ディレクトリの前に次のように/usr/local/bin配置します。PATH/usr/bin

関連情報