8 Stimmen

Warum kennt mein Vim meinen Alias nicht?

Ich habe "alias ruby=ruby1.9.1" verwendet, damit ich mein Ruby mit diesem ausführen kann:

ruby 123.rb

ou

ruby1.9.1 123.rb

Aber in meinem Vim verwende ich :!ruby und erhalte /bin/bash: ruby: Befehl nicht gefunden.

Ich muss :!ruby1.9.1 verwenden

Wie funktioniert der Alias? Warum kennt vim ihn nicht?

11voto

Benoit Punkte 72929

Wenn Vim einen Prozess startet, macht er einen Systemaufruf. Er hat nur die Umgebungsvariablen von Ihrer Shell geerbt, wenn Sie ihn von der Shell aus gestartet haben. Aber er wird Ihre Bash-Aliase nicht kennen.

Bash-Aliase dienen nur der Bequemlichkeit, wenn Sie eine Befehlszeile in der Bash-Shell eingeben. Sie werden nur von der Bash erweitert.

Wenn Sie echte Aliase wollen, legen Sie Symlinks in einen privaten, versteckten Ordner und fügen Sie diesen Ordner zu Ihrem PATH hinzu, oder verwenden Sie den Alternativen Einrichtung.

1voto

Matteo Riva Punkte 24224

Sie können versuchen

:set shellcmdflag+=i

um Bass als "interaktiv" aufzurufen, obwohl das bei jedem ausgeführten Shell-Befehl eine lästige Meldung ausgibt.

0voto

Chris Dodd Punkte 109402

Aliase werden (im Gegensatz zu Umgebungsvariablen) nicht an Subshells vererbt. Wenn Sie also wollen, dass ein Alias immer verfügbar ist, müssen Sie ihn in Ihrer .bashrc-Datei festlegen, damit jede Instanz der Shell ihn beim Starten erhält

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X