2017-10-20 2 views
0

Hier ist die Problemstellung:Wie führe ich einen Shell-Befehl von vim in der bestehenden Terminal-SCM-Sitzung aus?

  1. ich ein GNOME-Terminal öffnen und ein Startskript setup_myproject_view1 laufen, die eine SCM-Sitzung einrichtet und einige Umgebungsvariablen setzt.
  2. Ich öffne terminal vim und beginne mit dem Durchsuchen einiger Dateien oft in mehreren gespaltenen Bereichen (: sp,: vsp)
  3. Ich merke, dass ich eine oder mehrere dieser Dateien bearbeiten und speichern muss. Aber bevor ich das tun kann, muss ich die Datei vom SCM Server/Depot auschecken.

Jetzt habe ich mehrere Optionen:

  1. Schließen Sie alle meine vim Scheiben und die Kasse Befehl in der Shell ausgeführt und dann ein öffnen oder alle der Dateien, die ich vor offen hatte. Sehr mühsam.
  2. Öffnen Sie ein neues Terminalfenster oder eine Registerkarte, führen Sie das Startskript aus und überprüfen Sie die Datei. Kehren Sie dann zum ursprünglichen Terminal zurück, führen Sie Folgendes aus: e, um die Datei erneut zu laden und die Schreibberechtigung zu aktivieren, und fahren Sie mit der Bearbeitung fort. Immer noch langweilig, weil ich das Startskript ausführen muss (also muss ich mich daran erinnern, in welcher Projektansicht ich arbeite) und durch Windows/Tabs wechseln.
  3. Führen Sie den Shell-Checkout-Befehl von vim aus mit: shell oder:!. Das wäre ideal, weil ich schnell wieder zur Bearbeitung komme, ohne meinen Gedankengang zu durchbrechen. Aber die Shell innerhalb von vim hat nicht die Startup-Sitzung setup_myproject1_view1. Noch will ich setup_myproject_view1 setzen automatisch in meinem Shell .cshrc zu laufen, weil ich verschiedene Projekte und Ansichten: setup_myproject3_view2 usw.

So wie kann ich einen Shell-Befehl bequem von vim ausführen, ohne die Einrichtung mit dem SCM-Projektansicht?

Antwort

0

Sie vim ctrl + z anhalten kann, tun Sie Ihre Kasse und es dann mit fg wieder aufnehmen, wenn Sie vim von einer Bash-Shell aufgerufen. Weitere Informationen finden Sie unter bash job control

Als Alternative sollten Sie Ihr Setup-Skript ändern, um Variablen in zugrunde liegende Shells zu exportieren. Zum Beispiel, wenn Ihr Skript ist wie folgt:

# script.sh 
MEH=4 

Sie werden dieses Ergebnis erhalten, wenn Sie es verwenden:

source script.sh 
vim 
:shell 
echo $MEH 

exit 

aber wenn Sie es wie folgt ändern:

# script.sh 
export MEH=4 

werden Sie Erhalten Sie dieses Ergebnis, wenn Sie es verwenden:

source script.sh 
vim 
:shell 
echo $MEH 
4 
exit 
+0

Hinweis: Sie müssen sein im vim command mode für ctrl + z um richtig zu arbeiten - im Einfügemodus wird es nur an den aktuellen Puffer als ASCII 26 Zeichen gesendet – pqnet

Verwandte Themen