Was ist der Auswahlmodus und wann ist seine Verwendung relevant?

37

Ich habe versehentlich ghim normalen Modus gedrückt und eine Auswahl gestartet, also habe ich das Dokument nachgeschlagen und gefunden :h Select-mode.

Soweit ich weiß, ähnelt der Auswahlmodus dem visuellen Modus mit der Ausnahme, dass:

  • Wenn Sie ein druckbares Zeichen eingeben <CR>oder <BS>die Auswahl löschen, starten Sie den Einfügemodus und ersetzen Sie die Auswahl durch die Eingabe.
  • hjkl und andere Bewegungen im normalen oder visuellen Modus erweitern die Auswahl nur, wenn ihnen ein Präfix vorangestellt ist <Shift>
  • <CTRL-O>und <CTRL-G>wechseln in den visuellen Modus.
  • Das Dokument sagt auch Folgendes, was, wenn ich es richtig verstehe, bedeutet, dass es möglich ist, eine Zeilenauswahl vorzunehmen, die dann zeichenweise behandelt wird:

    Wenn Sie einen Operator im Auswahlmodus verwenden und die Auswahl zeilenweise erfolgt, werden die ausgewählten Zeilen bearbeitet, jedoch wie bei der zeichenweisen Auswahl. Wenn beispielsweise eine ganze Zeile gelöscht wird, kann sie später in der Mitte einer Zeile eingefügt werden.

Ich bin ein wenig verwirrt, weil ich nicht verstehe, warum dieser Modus erstellt wurde: Alles, was ich sehen kann, ist, dass er weniger praktisch als der visuelle Modus ist und nicht mehr Funktionen bietet.

Die Suchanfragen, die ich durchgeführt habe, liefern auch Ergebnisse zur Auswahl im visuellen Modus, behandeln jedoch nicht den Auswahlmodus.

Meine Fragen sind also:

  • Warum wurde der Auswahlmodus erstellt?
  • Was ist der Vorteil gegenüber dem visuellen Modus?
  • Was ist ein Anwendungsfall, bei dem es interessanter ist, den Auswahlmodus zu verwenden?

MetaNote Ich habe keine Ahnung, welches Tag für diese Frage relevant ist. Wenn nötig, können Sie es gerne erneut markieren.

statox
quelle
Für mich klingt das so, wie Sie es von den meisten GUI-Editoren erwarten würden. (Das Auswählen einer Zeile bedeutet nicht, dass beim Einfügen eine neue Zeile eingefügt wird. Umschalt + Pfeile erweitern die Zeile. Das Eingeben ersetzt die Auswahl. Alles, was ich zum Beispiel von einem Notizblock erwarten würde.)
muru
@muru: Ich stimme zu, dass es an diese Art von Editor erinnert, aber bedeutet es, dass dieser Modus implementiert wurde, um einige Benutzer zufrieden zu stellen, die Vim als schlechten Texteditor verwenden möchten? Das kommt mir eigentlich komisch vor.
statox
Tatsächlich ist diese Eigenschaft zum Einfügen in einigen Fällen nützlich. Ich bin sicher, jemand hat hier eine Frage zum Einfügen gestellt. Und was das Überschreiben angeht, spart dies einen Tastendruck (Sie müssen nicht drücken c). Je nachdem, was Sie tun möchten, kann der Auswahlmodus nützlich sein. Schade, dass ich das immer wieder vergesse.
muru
Ich werde dann versuchen, diese Frage zu finden. Für das Überschreiben habe ich nicht wirklich das Gefühl, dass ces sich um einen gespeicherten Tastendruck handelt, da die Auswahl nicht so bequem ist wie im visuellen Modus (da Sie nicht eoder iwdirekt verwenden können).
statox
1
Sie haben Recht: Wenn der aktuelle Modus ein Flag 'selectmode'enthält mouseund 'mouse'enthält, wird durch Auswahl mit der Maus der Auswahlmodus gestartet (laut Dokument).
statox

Antworten:

23

Der springende Punkt des Auswahlmodus ist es, ein Auswahlverhalten bereitzustellen, das demjenigen ähnelt, das in herkömmlichen Editoren verwendet wird.

Ebenso gibt es mswin.vim, das eine Reihe von Optionen und Zuordnungen ändert, damit sich Vim wie ein herkömmlicher Editor anfühlt.

Ich kann nur davon ausgehen, dass diese hinzugefügt wurden, um eine Untergruppe von Vim-Benutzern zufrieden zu stellen, wahrscheinlich zu der Zeit, als Vim auf Windows portiert wurde (ich kann in der Dokumentation eine gewisse Verachtung für Windows verspüren).

Auf jeden Fall ist der Auswahlmodus für Snippet-Erweiterungs-Plugins von entscheidender Bedeutung und kann zum Spaß und zum Vorteil missbraucht werden:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.
romainl
quelle
2
Ich denke, es ist ziemlich überraschend, Vim unter Windows zu portieren und einen solchen Modus zu erstellen, um den Benutzern zu gefallen: Wenn sie einen "klassischen" Editor wollten, warum würden sie dann Vim verwenden? Aber es scheint die einzige Erklärung zu sein, also ... Auch ich verstehe den Gewinn Ihrer Zuordnungen nicht wirklich: Soweit ich weiß, wählen sie das Wort unter dem Cursor im Auswahlmodus aus, wenn Sie dies getan haben, warum ist es dann so? sinnvoll?
statox
1
Sobald das Wort ausgewählt ist, geben Sie etwas ein und drücken Sie §, um das nächste Vorkommen auszuwählen. Geben Sie etwas anderes ein und drücken Sie §erneut, um das nächste Vorkommen auszuwählen. Sie können drücken ., um die letzte Einfügung zu wiederholen. Es ist eine Variante der "Punktformel".
Romainl
Ich verstehe es immer noch nicht. Inwiefern ähnelt das Auswahlverhalten eher herkömmlichen Editoren?
still_dreaming_1
7
@ still_dreaming_1 in einem herkömmlichen Editor eingeben foound auswählen. Sie brauchen keine Taste zu drücken, um das Gewählte zu ersetzen, oder? Das ist es, was der Auswahlmodus emuliert.
Romainl
1
@romainl Was ist das "Doppel-S" -Zeichen, das Sie eingeben? Wie schreibst du das Zeichen?
Michael