Emacs-Tramp-Modus - Automatische Vervollständigung von Dateinamen funktioniert nicht
936
Xolve
Ich verwende den Tramp-Modus in Emacs, um Dateien über SSH zu bearbeiten. Aber das Problem ist, dass ich auf Remote Shell ls als "ls --color" eingegeben habe. Tramp verwendet ls für die automatische Vervollständigung und kann die farbkodierte Ausgabe von ls nicht analysieren.
Gibt es eine Möglichkeit, den Befehl tramp per ls neu zu definieren, so dass ich meine Shell-Konfiguration beibehalten und die Dateinamenvervollständigung weiterhin mit tramp verwenden kann.
Edit 1 : Das Problem scheint etwas anderes zu sein. Ich habe versucht, den Alias in 'ls --color = auto' zu ändern, wie von @chepner vorgeschlagen, und dann einfach 'ls'. Es funktioniert immer noch nicht. Wie kann ich das Problem weiter beheben?
Das Umbenennen eines Standardbefehls über Alias oder Funktion ist eigentlich immer eine schlechte Idee. Warum nennst du nicht einfach dein farbenfrohes ls "lc"?
tink vor 11 Jahren
0
Haben Sie versucht `(setq tramp-debug-buffer t) (setq tramp-verbose 10)`?
Old Pro vor 10 Jahren
0
@OldPro Hier ist die Debug-Ausgabe: http://pastebin.com/PZuxs1St
Xolve vor 10 Jahren
0
Schwer zu verstehen. Sie müssen die Debug-Anweisungen in Ihre .emacs-Datei einfügen, damit Sie sehen können, wie sich Tramp beim Laden selbst konfiguriert. Wahrscheinlich macht Tramp eine schlechte Vermutung. Es könnte sein, dass / home / username ein Hostname ist und versucht, eine Verbindung zu diesem Host herzustellen, oder es ist möglicherweise nicht möglich, Perl-Skripts auf dem Ziel auszuführen. Einfach raten. Prüfen Sie, ob eine der Konfigurationsoptionen ein Problem darstellt: https://www.gnu.org/software/tramp/#Customizing-Completion
Old Pro vor 10 Jahren
1
Auf diese Weise lsfärbt sich die Ausgabe nur ein, wenn sie feststellt, dass sie auf das Terminal schreibt. Ich kenne mich nicht aus tramp, aber das sollte ausreichen.
Dein Alias spielt keine Rolle. Gut geschriebene Skripte (wie tramp) umgehen Aliasnamen, indem sie vollständige Pfadnamen verwenden, z. B. `/ bin / ls`.
Old Pro vor 10 Jahren
0
BSD `ls` hat die Umgebungsvariablen` CLICOLOR` und `CLICOLOR_FORCE`, die auch beeinflussen können, wie` ls` eine farbige Ausgabe erzeugt. Ich bin nicht sicher, ob GNU `ls` etwas Ähnliches hat (nichts in der Manpage und anscheinend nichts im Texinfo-Handbuch).
chepner vor 10 Jahren
0
0
Rich Homolka
The other thing I would do, is look in my environment if there is anything that indicates you're in "tramp mode"
Say, do:
printenv | sort > ~/notramp.txt
then in emacs/tramp-mode:
printenv | sort > ~/withtramp.txt
Diff the two env files, and see what's different.
Then, in your ~/.bashrc, you can put
if [ -z "$TRAMPFLAG" ] then alias ls='ls --color=auto' fi
Ich habe Ihre Methode ausprobiert und funktioniert nicht gleich. Sieht aus wie ein anderes Problem.
Xolve vor 11 Jahren
0
0
Xolve
Tramp senden Sie das folgende Perl-Snippet, um Dateivervollständigungen abzurufen
Perl5 wurde auf dem Remote-Host aufgrund einer fehlenden Bibliothek beschädigt. Die Lösung bestand darin, die kaputte Perl5 manuell zu reparieren. All dies danke Michael Albinus .
Hey, ich sagte, vielleicht konnte es auch nicht perl auf dem Ziel laufen. :-)
Old Pro vor 10 Jahren
1
Ja, genau! Ich hätte dir Kopfgeld geben können, wenn du es als Antwort gibst.
Xolve vor 10 Jahren
0
0
Old Pro
Tramp uses sophisticated techniques to be portable across a variety of systems, but it is not foolproof. Often to provide things like remote filename completion tramp will actually run modest perl scripts on the remote host. So check to make sure you have perl 5 installed, configured, and available on the remote host.