Vim-Befehlsmodus vollständiges Wort

12

Gibt es eine Möglichkeit, Vim in den Befehlsmodus zu versetzen, um Wörter aus der aktuellen Datei zu vervollständigen? Angenommen, ich habe diese Datei:

one
two
three
once

und ich gehe in den Kommandozeilenmodus

:myruncommand o|

Dabei |bezeichnet die Cursorposition. Wie mache ich Vim vollständig oneoder oncewenn ich die Tabulatortaste drücke?

Nickolay Kolev
quelle
Zitat aus der Skriptbeschreibung: "Im ':' - Modus ist die Fertigstellung erst nach einem '/' verfügbar." Nicht wirklich was ich brauche.
Nickolay Kolev

Antworten:

5

Die Antwort von jamesc ist oft die bequemste. Wenn Sie jedoch im Voraus wissen, dass Sie die automatische Vervollständigung für einen Befehl oder eine Suchzeichenfolge oder andere Funktionen verwenden möchten, die nur in einem Puffer verfügbar sind, finden Sie hier eine andere Möglichkeit, um zu den entsprechenden Puffern zu gelangen ::

  • Geben Sie ein q :, um den Befehlspuffer zu öffnen
  • Geben Sie ein a, um den neuen Befehl einzugeben: myruncommand o
  • Verwenden Sie Ctrl+ N/ Ctrl+ Pfür die Vervollständigung von Schlüsselwörtern, genau wie in der Antwort von jamesc

Grundsätzlich q :funktioniert das Gleiche wie : Ctrl+ F: Sie können Befehle eingeben, als würden Sie Text in einen Puffer eingeben. In ähnlicher Weise können Sie q /mit / Ctrl+ und + Fbeide Suchzeichenfolgen in einen Puffer eingeben.

Michael Scheper
quelle
Gute Antwort. Befehlspuffer ist etwas, das ich definitiv besser nutzen möchte.
Jamesc
@ Jamesc: Ich bin froh, dass es für Sie hilfreich war. Ich wusste nichts davon Ctrl+F, also half mir auch deine Antwort.
Michael Scheper
3

Obwohl es stimmt, dass dies nicht nativ mit 'tab' abgeschlossen werden kann, besteht die Möglichkeit von:

  • Eingabe des gewünschten Befehls im Befehlszeilenmodus. Für das obige Beispiel war dies:

    :myruncommand o
    
  • Drücken Sie nun Ctrl-F, um das Befehlsfenster aufzurufen.

  • ABewegen Sie sich zum Ende der Zeile und rufen Sie den Einfügemodus auf.
  • Verwenden Sie Ctrl-N/ Ctrl-P, um die Schlüsselwortvervollständigung zu öffnen, und wählen Sie die gewünschte Option aus - in diesem Beispiel beide oneund oncesollten verfügbar sein, da sie sich in einem offenen Puffer befinden.

Ich habe diese Antwort hinzugefügt, weil meine Suche nach "vim vollständiges Wort im Befehlsmodus" mich hierher gebracht hat und es eine praktikable Lösung zu sein scheint, obwohl die Tabulatortaste nicht verwendet wird.

Dies funktioniert bei mir in Vim 7.4

jamesc
quelle
Ich hätte vermuten sollen, dass es einen einfachen Weg gibt, zum Befehls- / Suchpuffer zu gelangen, während Sie bereits einen Befehl oder eine Suchzeichenfolge eingeben! Vielen Dank! Ich habe eine Antwort hinzugefügt, die auf Ihrer basiert, so wie ich es bereits wusste. Aber zweifellos Ctrl+Fist in vielen Fällen bequemer. superuser.com/a/1016058/219388
Michael Scheper
1

Der Abschluss ist verfügbar, wenn Sie den Verlauf des Befehlsmodus eingeben. Sehr praktisch, um zuvor verwendete Befehle zu ändern oder zu wiederholen.

Drücken Sie q: im normalen Modus Befehlshistorie Fenster einzugeben.

Weitere Informationen finden Sie unter http://vim.wikia.com/wiki/Using_command-line_history .

rvrsd
quelle
1
Wenn Sie Ctrl-fim Befehlszeilenmodus Ctrl-w q
eingeben, wird