Verhindern Sie, dass zsh übergeordnete Verzeichnisse vervollständigt

8

Ich benutze zsh mit grml's zshrc als Basis. Im Rahmen meiner Arbeit greife ich regelmäßig auf den Netzwerkpfad zu (z. B. NFS. AFS.)

Wenn ich / a / long / network / path / auf / die / andere / Seite / der / Welt schreibe, drücke TAB zweimal, ist es schmerzhaft langsam, da zsh unter / a / dann / a / long / a / long / zu suchen beginnt. Netzwerk etc ...

Zur gleichen Zeit kehrt ls / a / long / network / path / on / the / other / side / of / the / world in einer Sekunde zurück. Also möchte ich zsh sagen, dass er aufhören soll, mich zu erraten. (Wenn ich / usr / src / linuxx / schreibe und dann die Tabulatortaste drücke, stellt sich heraus, dass ich / usr / src / linux / wollte, und das ist cool, weil das Netzwerk mir mehr schadet als nützt). Ich möchte erst "am Ende" nach dem letzten Schrägstrich automatisch vervollständigen.

Manchmal verwende ich eine Workaround-CD im Verzeichnis und verwende dann die automatische Vervollständigung. Sicherlich muss es einen besseren Weg geben.

Wie kann ich das erreichen?

ttyS0
quelle

Antworten:

6

Diese Art von Verhalten wird über Stile konfiguriert (mit Ausnahme einiger Grundlagen mit Optionen). Du wirst ausschalten wollen path-completion.

Standardmäßig überprüft die Dateinamenvervollständigung alle Komponenten eines Pfads, um festzustellen, ob Vervollständigungen dieser Komponente vorhanden sind. Zum Beispiel /u/b/zkann bis abgeschlossen werden /usr/bin/zsh. Wenn Sie diesen Stil explizit auf false setzen, wird dieses Verhalten für Pfadkomponenten bis /vor dem Cursor verhindert

zstyle ':completion:*' path-completion false

Möglicherweise möchten Sie accept-exact-dirsstattdessen einschalten . Mit path-completionlinks auf und accept-exact-dirseingeschaltet wird , zsh nur andere Abschluss für Pfadkomponenten versuchen , als die letzten , wenn der Pfad nicht existiert.

zstyle ':completion:*' accept-exact-dirs true
Gilles 'SO - hör auf böse zu sein'
quelle
Ich sehe, dass ich diese Antwort gerade akzeptiert habe. Ich denke, ich hätte auch sagen sollen: "Super, das ist genau das, was ich brauche" -ed. Danke ;-).
ttyS0