Nach der Eingabe von sudo kann ich Befehle nicht mehr automatisch vervollständigen, indem ich die Tabulatortaste drücke

Wenn ich in einem Terminal den Anfang eines Befehls eingebe, indem ich die Tabulatortaste drücke, kann ich den Rest dieses Befehls sehen.

Diese Funktion funktioniert jedoch nicht mit Wörtern, die ich nach tippe sudo.

Wie kann ich Befehlsnamen vervollständigen, selbst nachdem ich geschrieben habe sudo?

Eine Möglichkeit wäre, zuerst den Befehl zu schreiben, gefolgt von Strg-A, um zum Anfang der Zeile zu springen, und dann sudo.

Antworten (3)

OS X hat bei den Jungs hinter Ubuntu nicht so viele Vervollständigungsmöglichkeiten eingeschaltet. Um die Autovervollständigung zu sudo hinzuzufügen, sollten Sie einfach zur Datei hinzufügen$HOME/.bash_profile

complete -cf sudo

Die Beschreibung von completeund seiner Optionen ist kurz in der bashHandbuchseite der eingebauten Befehle definiert (siehe man bash). Obwohl die Befehle -c und -f nicht offensichtlich detailliert sind, kann man ihre Beschreibung unter der Erklärung "-A Aktion" finden.

Ich habe mein Problem behoben, indem ich Bash Completion auf Macports installiert habe.

Es wäre hilfreich zu wissen, welche Shell Sie verwenden. Dies funktioniert bei mir sowohl in bash als auch in zsh. Die Vervollständigung in zsh ist viel besser als in bash.

Eine Sache, die Sie tun könnten, ist, den gewünschten Befehl mit der Tabulatorvervollständigung einzugeben, aber bevor Sie die Eingabetaste drücken, control-aum zum Anfang der Zeile zu gehen, und dann die Eingabetaste sudound die Eingabetaste drücken, um den Befehl auszuführen.

Ich habe Terminal -> Einstellungen überprüft, da steht Login Shell. Ich glaube, ich verwende keine spezielle Shell. Eigentlich habe ich /bin/bash und /bin/zsh geschrieben, keiner von ihnen hat geholfen, mein Problem zu beheben.
Tun Sie, was ich im zweiten Absatz meiner Antwort empfehle. Das ist am besten.
Ja, aber ich möchte es so verwenden, wie ich es immer in Ubuntu getan habe. Gibt es eine andere Möglichkeit, das zu tun?