Odpowiedzi:
Oto surowe „tekstowe” obiekty tekstowe:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
I prymitywny „bufor” obiekt tekstowy:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---EDYTOWAĆ---
Określenie „podmiot” jest poleceniem, że nic nie robi sama w sobie: d, y, itd.
Naciśnięcie tych klawiszy wprowadza cię w „tryb oczekiwania operatora”, gdzie Vim czeka, aż powiesz mu, na czym ma działać… z „ruchem operatora”.
Możesz użyć :omaplub, :onoremapaby zdefiniować niestandardowe ruchy oczekujące na operatora. Zastosowana tutaj technika jest inspirowana :help omap-info:
Zauważ, że użyłem :onoremapdlatego il, ali i%nie istnieje. Jeśli są nadrzędne istniejący ruch lub tekstowych obiektu - mówią ip- trzeba użyć rekurencyjnej mapowanie: :omap.
:help :map-operator opisuje nieco bardziej zaawansowaną metodę.
Zobacz :help v_ona ow trybie wizualnym.
o(tryb oczekiwania operatora) w onoremap? Co robi ow trybie wizualnym? Domyślam się, że jest to „druga strona”, ponieważ wydaje się, że przeskakuje na drugą stronę zaznaczenia ... Jak się :hna nim znaleźć ? Nie mogę tego znaleźć przy pomocy :h x_olub :h o.
Sugerowałbym dodatkowe rozwiązanie, aby użyć ^ zamiast 0 (więc linia zaczyna się na początku pierwszego znaku:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
W ten sposób, jeśli wykonamy „zmianę w linii”, przestrzega poziomu wcięcia.