Abbrechen abgeschlossen

11

Normalerweise fügt der Einfügemodus-Abschluss ( <C-n>) beim ersten Drücken das richtige Wort ein <C-n>, aber nicht immer. Daher möchte ich, dass Vim die Übereinstimmung einfügt, die er beim Drücken als am besten erachtet <C-n>, aber ich kann diese Einfügung danach trotzdem abbrechen, falls die richtige Übereinstimmung nicht angezeigt wird oder weit unten in der Liste steht.

Natürlich könnte ich dieses Verhalten codieren, aber ich habe das Gefühl, dass es einen Standardschlüssel (-kombination) geben sollte, um dies zu tun. Könnte mich jemand in die richtige Richtung weisen?

Bonusfrage: Gibt es einen anderen Schlüssel, mit dem ich das längste Match erzielen kann (wie vor meinem Treffer <C-n>)?

Für das, was es wert ist, benutze ich completeopt=menu

Octaviour
quelle
1
Ist das ctrl-uwas du suchst?
Statox
Nein, Strg-U scheint die gesamte Zeile zu löschen. Ich suche nach einer Kombination, die nur den Text entfernt, der durch Drücken von Strg-n eingefügt wurde.
Octaviour
Mein erster Gedanke war "funktioniert hier nicht die übliche Funktion zum Abbrechen von Schlüsseln?", Dann wurde mir klar, dass dies Emacs waren. Nur ein paar Tage des Lernens vor Jahren haben mich korrumpiert, ich werde in einem heiligen Fluss baden und mich reinigen!
Sundar - Reinstate Monica

Antworten:

13

Von :h complete_CTRL-E:

                                                        * complete_CTRL-E *
Wenn der Abschluss aktiv ist, können Sie ihn mit STRG-E stoppen und zum zurückkehren
ursprünglich eingegebener Text. Die STRG-E wird nicht eingefügt.

Wenn Sie adann beispielsweise tippen ^Pund eine sehr lange Liste erhalten, können Sie drücken ^N , um zu Ihrem ursprünglichen Text zurückzukehren, während das Popup für die Fertigstellung noch aktiv ist. Sie können dann zusätzliche Zeichen eingeben, um die Abschlussliste einzugrenzen.

Antonius
quelle
Genau das habe ich gesucht. Ich hatte nicht bemerkt, dass Strg-P ​​mich auch zur ursprünglichen Eingabe zurückbringen würde. Vielen Dank.
Octaviour
2
@Octaviour, ich finde Strg-P ​​im Allgemeinen nützlicher als Strg-N, da es nach der nächsten Übereinstimmung vor (statt nach) sucht, wo Sie sich befinden. Wenn Sie also gerade ein Wort geschrieben haben, zeigt Strg-P ​​schnell dasselbe Wort an, wenn Sie es wiederholen müssen (z. B. dieselbe Variable erneut im Code verwenden)
Shahbaz
Ja, ich habe ^Paus genau diesem Grund aus Gewohnheit geschrieben.
Antony