zsh Äquivalent von Bash Show-All-If-Ambiguous?


8

Wenn Sie in Bash bei mehreren möglichen Abschlüssen auf die Tabulatortaste klicken, wird eine Liste mit Übereinstimmungen angezeigt, die wiederholt gedruckt wird, wenn Sie wiederholt die Tabulatortaste drücken. In tcsh wird dies auch erreicht, wenn die automatische Vervollständigung auf erweitert eingestellt wird.

In zsh erhalten Sie zwar die Liste der Übereinstimmungen, aber beim Drücken der zweiten und dritten Registerkarte wird der Durchlauf durch die Übereinstimmungen gestartet. Gibt es eine Möglichkeit, zsh dazu zu bringen, das Äquivalent von Bashs Show-All-If-Ambiguous ohne das Radfahren zu machen?

Ich suche nicht nach dem cleveren, aber nutzlosen "Warum sollten Sie mehrmals die Tabulatortaste drücken, wenn es nach dem ersten angezeigt wird?". Wenn ich meine Gewohnheiten hätte anpassen können, hätte ich das inzwischen getan.

Antworten:


5

Zsh hat viele abschlussbezogene Optionen (siehe man zshoptionsunter Completion). Ich denke du bist hinterher setopt no_auto_menuund vielleicht setopt bash_auto_listauch.


Entschuldigung, ich habe meine Frage schlecht formuliert. Ich möchte wissen, wie der Tab-Vervollständigungszyklus deaktiviert wird. Ich denke, ich werde eine neue Frage stellen.

3
@ user714112: setopt no_auto_menuDeaktiviert den Tab-Vervollständigungszyklus: Wenn Sie drücken Tabund das aktuelle Präfix nicht eindeutig ist, wird ein Menü angezeigt , und das war's, die Befehlszeile ändert sich nicht.
Gilles 'SO - hör auf böse zu sein'

Danke, du hast recht. Ich bin mir nicht sicher, warum ich das früher nicht gesehen habe. Ist es möglich, die Liste auf dem 2., 3., 4. TAB anstelle von nichts erneut anzuzeigen? Der menschliche Instinkt ist zu glauben, dass Ihre Tastatur nicht funktioniert, wenn beim Drücken der Tabulatoren 2, 3 und 4 nichts passiert.
Sridhar Sarnobat

@ user7000: Die Liste wird bei jedem Drücken erneut angezeigt Tab. Wenn ich den Bildschirm aus dem Terminalemulator-Menü lösche oder eine Datei erstelle, drücke Taberneut, zsh zeigt die Liste erneut an und zeigt die neue Datei an. (Gerade mit zsh 4.3.4 getestet, und ich glaube nicht, dass sich das Verhalten seit langer Zeit geändert hat.)
Gilles 'SO - hör auf böse zu sein'

1
Ich habe endlich die Lösung bekommen. Ich brauchte deine 2 Optionen plus das Entfernen von ALWAYS_LAST_PROMPT. Das gibt mir das schwer fassbare Verhalten, das ich wollte: setopt bash_auto_list; setopt no_auto_menu; deaktiviere ALWAYS_LAST_PROMPT; Nochmals vielen Dank, dass Sie mir dabei geholfen haben. Ich schätze Ihre Beharrlichkeit
Sridhar Sarnobat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.