Warum kennt mein vim meinen Alias ​​nicht?

8

Ich habe "alias ruby ​​= ruby1.9.1" benutzt, damit ich meinen Rubin mit diesem ausführen kann:

  

ruby ​​123.rb

oder

  

ruby1.9.1 123.rb

Aber in meinem vim verwende ich:! Ruby und holen / bin / bash: ruby: Befehl nicht gefunden.

Ich muss Folgendes verwenden:! ruby1.9.1

Wie funktioniert der Alias? Warum vim weiß es nicht?

    
Lai Yu-Hsuan 08.03.2011, 16:48
quelle

3 Antworten

11

Wenn Vim einen Prozess startet, führt er einen Systemaufruf durch. Es hat nur die Umgebungsvariablen von Ihrer Shell geerbt, wenn Sie es von der Shell gestartet haben. Aber es wird deine Bash-Aliase nicht kennen.

Bash-Aliase sind nur dann praktisch, wenn Sie eine Befehlszeile in der Bash-Shell eingeben. Sie werden nur durch Bash erweitert.

Wenn Sie echte Aliase verwenden möchten, fügen Sie symbolische Links in einen privaten verborgenen Ordner und fügen Sie diesen Ordner zu Ihrem PATH hinzu oder verwenden Sie die Alternativen Einrichtung.

    
Benoit 08.03.2011, 16:58
quelle
1

Sie können versuchen

%Vor%

um Bass als "interaktiv" zu bezeichnen, obwohl das für jeden ausgeführten Shell-Befehl eine lästige Nachricht ist.

    
Matteo Riva 08.03.2011 17:09
quelle
0

Aliase (im Gegensatz zu Umgebungsvariablen) werden nicht von Subshells vererbt. Wenn Sie also einen Alias ​​immer verfügbar haben möchten, müssen Sie ihn in Ihrer .bashrc-Datei angeben, damit jede Instanz der Shell sie beim Start erhält

    
Chris Dodd 08.03.2011 17:03
quelle

Tags und Links