Wie kann ich Powershell als meine Tramp-Encoding-Shell verwenden?

8

Zuerst starte ich eshell und gebe dann den Befehl cd /plink:<user>@<host>:/home/

ein

dann bekomme ich diese Fehlermeldung

  

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft   Konzern. Alle Rechte vorbehalten.

     

Die Eingabeaufforderung wurde von Ihrem Administrator deaktiviert.

     

Drücken Sie eine beliebige Taste, um fortzufahren. . .

Ich versuche eine Verbindung mit plink herzustellen (was in meinem Pfad ist), auch nachdem ich den * Nachrichten * -Puffer durchgegangen bin, den ich gefunden habe.

  

Die lokale Shell-Eingabeaufforderung für (C: \ Windows \ system32 \ cmd.exe)

konnte nicht gefunden werden

Ich bin 90% sicher, dass dies, weil die cmd auf meinem Rechner deaktiviert wurde, weil, wenn ich das gleiche Setup auf einem anderen Computer versuchen, wo ich weiß, dass die cmd aktiviert ist, alles funktioniert.

Ich habe meine .emacs Datei geändert, um

zu haben %Vor%

ich unterschiedliche Ergebnisse erhalten, aber die Ergebnisse Unsinn zu sein scheinen verschlüsselten (die dritte Zeile sieht aus wie es eine Aufforderung sein könnte, das \ und > Zeichen sind an den richtigen Stellen ...).

ich es geschafft, eine ziemlich gute Beschreibung zu graben, was tramp-encoding-shell beträgt, gibt es auch eine ähnliche Frage SO, und hier ist die tramp-encoding-shell source/documentation auf github.

Aktualisieren

Hier ist, was mein Bildschirm sieht aus wie nach einer Plink Verbindung mit Powershell eingestellt als Vagabund-encoding-Shell erfolglos zu öffnen versuchen.

    
John 30.04.2015, 14:28
quelle

1 Antwort

2

Also ich weiß TRAMP nicht, aber die Erklärung dessen, was Sie erhalten, ist, dass Windows PowerShell Sie Unicode (UTF16) zurücksenden, jedes Zeichen ist 16 Bits in diesem Fall der Buchstabe eine Null, plus die Tatsache, dass das Ende der Zeile ist Wagenrücklauf / Zeilenvorschub (0xa, Oxd).

Nun zu "emacs konnte keine lokale Shell-Eingabeaufforderung für PowerShell finden" Fehler gemäß der TRAMP-Dokumentation < Der Rat von Michael Albinus scheint vielversprechend zu sein.

6.4.2 Shell auf einem Remote-Host ausführen

Durch Aufruf der M-x-Shell in einem Puffer, der sich auf einen Remote-Host bezieht, wird die lokale Shell wie in shell-file-name definiert ausgeführt. Dies kann auch ein gültiger Dateiname für eine Shell sein, die auf dem Remote-Host angewendet werden soll, aber es wird zumindest dann fehlschlagen, wenn Ihr lokaler und Remote-Host verschiedenen Systemtypen angehören, wie 'windows-nt' und 'gnu / linux'.

Sie müssen die Variable explicit-shell-file-name auf den Shell-Dateinamen auf dem Remote-Host setzen, um diese Shell auf dem Remote-Host zu starten.

6.4.6 Ausführen von Remote-Prozessen auf Windows-Hosts Mit Hilfe des winexe ist es möglich, Prozesse auf einem entfernten Windows-Host auszuführen. TRAMP hat dies für Prozess-Datei und Start-Datei-Prozess implementiert.

Das variable tramp-smb-winexe-Programm muss den Dateinamen Ihres lokalen winexe-Befehls enthalten. Auf dem Remote-Host muss Powershell V2.0 installiert sein. Es wird verwendet, um den Remote-Prozess auszuführen.

Um eine entfernte Shell auf dem Windows-Host über die M-x-Shell zu öffnen, müssen Sie die Variablen explicit-shell-file-name und explicit - * - args setzen. Wenn Sie beispielsweise cmd ausführen möchten, müssen Sie Folgendes festlegen:

%Vor%

Wenn Powershell als Remote Shell ausgeführt wird, sind die Einstellungen

%Vor%     
JPBlanc 04.05.2015 20:22
quelle