Ich habe zwei Versionen von vim
auf macOS installiert:
- eine Standardversion,
/usr/bin/vim
, - und MacVim (über Homebrew),
/usr/local/bin/vim
.
Wenn ich eingebe vim
, wird das Standardprogramm aufgerufen. Ich möchte MacVim verwenden, wenn ich eingebe vim
. Wissen Sie, wie das geht? Verwenden beide dieselbe ~/.vimrc
Datei?
Antwort1
Verwenden Sie einen Alias.
Der Alias ist in einer Ihrer BASH-RC-Dateien definiert, z. B. ~/.bashrc
. Wenn es sich unten /usr/local/bin/vim
um einen symbolischen Link handelt, erstellen Sie einen Alias mit dem Namen vim
.
if [ -h '/usr/local/bin/vim' ]; then
alias vim='/usr/local/bin/vim'
fi
Die gleiche Logik kann wie folgt angewendet werden.
[ -h '/usr/local/bin/vim' ] && alias vim='/usr/local/bin/vim'
-h
testet, ob eine Datei ein symbolischer Link ist, was bei der Verwendung von Homebrew der Fall sein kann.-x
testet, ob eine Datei eine reguläre ausführbare Datei ist.
(Man erkennt, dass es sich bei einer Datei um einen Link handelt, wenn ls -l
der erste Buchstabe der Berechtigung als l angezeigt wird.mrwxr-xr-x.)
Möglicherweise möchten Sie auch einige Variablen festlegen, die Programme zum Aufrufen eines Standard-Editors verwenden.
EDITOR='/usr/local/bin/vim'
VISUAL='/usr/local/bin/vim'
Nachdem Sie die Definition zur RC-Datei Ihrer Shell hinzugefügt haben, verwenden Sie die RC-Datei als Quelle, um den neuen Alias abzurufen, source ~/.bashrc
oder die Datei, die für Ihre BASH-Konfiguration geeignet war. Der Befehl , command -v vim
zeigt an, dass der Alias erstellt wurde, wenn seine Ausgabe wie folgt lautet.
alias vim=/usr/local/bin/vim
Beide Versionen von verwenden dieselben VIM RC-Dateien vim
.
Der Vorteil des Verweisens auf den symbolischen Link statt auf die ausführbare Binärdatei besteht darin, dass der Alias nicht bei jedem Upgrade von MacVim aktualisiert werden muss, was häufig vorkommt. Homebrew behält den symbolischen Link bei, der auf die richtige ausführbare Binärdatei verweist, wenn Upgrades brew update && brew upgrade
beispielsweise mit durchgeführt werden.
Die Systemversion /usr/bin/vim
sollte dort bleiben, wo sie ist. Ohne Deaktivierung des Systemintegritätsschutzes (SIP) kann sie ohnehin nicht gelöscht oder geändert werden. Es ist weiterhin möglich, die Systemversion durch Eingeben von zu verwenden /usr/bin/vim
, die vim
Eingabe von führt jedoch zu /usr/local/bin/vim
.
Ändern Sie den Pfad.
Eine andere Möglichkeit, die für alle über Homebrew installierte Software funktioniert, besteht darin, die PATH
so zu ändern, dass alle von Homebrew installierte Software zuerst in der steht PATH
. Zu Beginn muss man wissen, welche zsh
RC-Datei bereits die Definition des Pfads enthält.
cd
grep path .z*
Eines der Ergebnisse könnte enthalten fpath
. Dies ist nicht die richtige Variable. Wir suchen nach einer Variable mit Kleinbuchstaben namens path
. Nachdem Sie den Namen der zu bearbeitenden Datei ermittelt haben, der wahrscheinlich entweder ~/.zshrc
oder ist ~/.zprofile
, ändern Sie den Wert der path
Variablen. Im Folgenden werden beispielsweise zuerst und path
definiert , gefolgt von Skripten oder Programmen im Home-Verzeichnis und zuletzt dem Rest des Pfads, der bereits vom System definiert wurde./usr/local/bin
/usr/local/sbin
path=(
/usr/local/{bin,sbin}
$HOME/bin
$path
)
Die resultierende Unix- PATH
Variable würde dann wie folgt definiert.
/usr/local/bin:/usr/local/sbin:/Users/$username/bin:/usr/bin:/bin:/usr/sbin:/sbin
Die zsh
path
und Unix- PATH
Variablen sind durch „zusammengebunden“ typseset
, also genügt source
die Datei, die bearbeitet wurde, um die path
Variable zu ändern: source ~/.zprofile
beispielsweise. Sehen Sie sich dann die PATH
Variable an, um zu erfahren, ob sie wie erwartet geändert wurde: echo $PATH
.
Die Homebrew-Paketbetreuer können recht gut erkennen, welche Software Probleme mit macOS verursachen würde, wenn /usr/local/bin
sie im Pfad an erster Stelle steht, vor /usr/bin
. Wenn Homebrew beispielsweise GNU installieren soll , wäre id
der Name der Software in , um Probleme mit BSD in zu vermeiden ./usr/local/bin
gid
id
/usr/bin
Antwort2
/usr/local/bin
Der Standard bei Brew besteht darin, es in Ihren PATH
vorherigen Systemverzeichnissen abzulegen, /usr/bin
damit dessen Befehle zuerst abgerufen werden.