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, yusw.
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 :omapoder :onoremapdefinieren. Die hier verwendete Technik ist inspiriert von :help omap-info:
Beachten Sie, dass ich verwendet , :onoremapweil il, alund 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_ofür oim visuellen Modus.
o(Operator Pending Mode) in der Onoremap? Was macht der ovisuelle Modus? Ich würde vermuten, dass es "andere Seite" ist, weil es auf die andere Seite einer Auswahl zu springen scheint ... Wie finde ich :hdarauf? Ich kann es nicht mit :h x_ooder 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".