Antworten:
Hier ist eine grobe "Linie" Textobjekte:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
Und ein grobes "Puffer" -Textobjekt:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---BEARBEITEN---
Ein „Operator“ ist ein Befehl, der nichts tut sich selbst: d
, y
usw.
Durch Drücken dieser Tasten gelangen Sie in den "Operator-Pending-Modus", in dem Vim darauf wartet, dass Sie ihm mitteilen, was er ausführen soll ... mit einer "Operator-Pending-Bewegung".
Sie können benutzerdefinierte, vom Bediener ausstehende Bewegungen verwenden :omap
oder :onoremap
definieren. Die hier verwendete Technik ist inspiriert von :help omap-info
:
Beachten Sie, dass ich verwendet , :onoremap
weil il
, al
und i%
nicht existieren bereits. Wenn Sie beispielsweise eine vorhandene Bewegung oder ein vorhandenes Textobjekt überschreiben ip
, müssen Sie eine rekursive Zuordnung verwenden : :omap
.
:help :map-operator
beschreibt eine etwas fortgeschrittenere Methode.
Siehe :help v_o
für o
im visuellen Modus.
o
(Operator Pending Mode) in der Onoremap? Was macht der o
visuelle Modus? Ich würde vermuten, dass es "andere Seite" ist, weil es auf die andere Seite einer Auswahl zu springen scheint ... Wie finde ich :h
darauf? Ich kann es nicht mit :h x_o
oder finden :h o
.
Ich würde eine zusätzliche Lösung vorschlagen, um ^ anstelle von 0 zu verwenden (die Zeile beginnt also am Anfang des ersten Zeichens:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
Auf diese Weise wird die Einrückungsstufe berücksichtigt, wenn wir "in der Linie ändern".