web-dev-qa-db-ja.com

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

MacOSにvimの2つのバージョンがインストールされています。

  • デフォルトバージョン、/usr/bin/vim
  • およびMacVim(Homebrew経由)、/usr/local/bin/vim

vimと入力すると、デフォルトのプログラムが呼び出されます。 vimと入力するたびにMacVimを使用したいと思います。どのようにするか知っていますか?どちらも同じ~/.vimrcファイルを使用していますか?

1
Jack Thomson

エイリアスを使用します。

エイリアスは、~/.bashrcなどのBASHRCファイルの1つで定義されています。以下で、/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'

シェルのRCファイルに定義を追加した後、RCファイルを入手して、source ~/.bashrcまたはBASH構成に適したファイルで新しいエイリアスを取得します。コマンドcommand -v vimは、出力が次の場合にエイリアスが作成されたことを示します。

alias vim=/usr/local/bin/vim

同じVIM RCファイルがvimの両方のバージョンで使用されます。

バイナリ実行可能ファイルの代わりにシンボリックリンクを指すことの利点は、MacVimのアップグレードのたびにエイリアスを更新する必要がないことです。これはよくあることです。たとえば、brew update && brew upgradeを使用してアップグレードを実行する場合、Homebrewはシンボリックリンクが正しいバイナリ実行可能ファイルを指すようにします。


システムバージョン/usr/bin/vimは、現在の場所にとどまる必要があります。システム整合性保護(SIP)を無効にしないと、削除または変更することはできません。 /usr/bin/vimと入力してシス​​テムバージョンを使用することは可能ですが、vimと入力すると/usr/local/bin/vimが呼び出されます。


パスを変更します。

Homebrewを介してインストールされたすべてのソフトウェアで機能するもう1つの方法は、Homebrewによってインストールされたすべてのソフトウェアが最初にPATHになるようにPATHを変更することです。まず、どのzshRCファイルにパスの定義がすでに含まれているかを知る必要があります。

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

zshpath変数とUnixPATH変数はtypsesetによって「結合」されているため、変更するために編集されたファイルはsourceだけです。 path変数:source ~/.zprofileなど。次に、PATH変数を調べて、期待どおりに変更されたかどうかを確認します:echo $PATH


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

2
Christopher

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

0
D. Ben Knoble