Bash-like teilweise tab-complete für Dateinamen in Vim

16

Wenn es in Bash mehrere Dateien mit demselben Präfix gibt und ich einen Teil des Präfixes und Treffers eingebe Tab, wird das gemeinsame Präfix vervollständigt und ich kann weiter tippen, um zwischen den möglichen Ergebnissen zu unterscheiden.

Wenn es in Vim mehrere Dateien mit demselben Präfix gibt und ich einen Teil des Präfixes eingebe und treffe Tab, wird die gesamte erste Übereinstimmung abgeschlossen und ich kann dann unter allen Übereinstimmungen auswählen. Um den Satz zu verkleinern, muss ich die Rücktaste drücken, bis ich das Ende des allgemeinen Teils erreicht habe, dann noch etwas eingeben und Taberneut drücken .

Ich habe oft viele Dateien, in denen es ein langes gemeinsames Präfix gibt, und die gewünschte Datei gehört nicht zu den ersten (zum Beispiel ein Verzeichnis mit Projektdateien, die unter anderem verschiedene Makefiles enthalten, alle mit dem Namen Makefile.{whatever}).

Kann ich Vim wie Bash vervollständigen, um viele Tastenanschläge zu sparen?

Bonus, wenn dies auch für andere Vervollständigungen gelten kann (z. B. Aufzählungswerte, die alle dasselbe Präfix haben)

John O'M.
quelle

Antworten:

16

Sie können die wildmodeOption verwenden, um dies zu steuern.

Wenn Sie verwenden :set wildmode=list:longest, erhalten Sie ein ähnliches Verhalten wie bash.

Ich persönlich bevorzuge die Verwendung :set wildmode=list:longest,full; Dies listet die Abschlüsse auf, aber beim zweiten Tab Drücken können Sie zwischen den Einträgen wechseln (und Shift+Tabumgekehrt).

Dies gilt für alle von Vim durchgeführten Vervollständigungen.

Sehen: :help 'wildmode'

Martin Tournoij
quelle
3
Keine Modi einfügen! Das brauchst du completeopt.
Rich
Vielen Dank! wildmode und completeopt sind genau das, wonach ich gesucht habe!
John O'M.