Jawaban:
Ini adalah objek teks "garis" mentah:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
Dan objek teks "buffer" kasar:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
--- EDIT ---
Sebuah "operator" adalah perintah yang tidak melakukan apa-apa dengan sendirinya: d, y, dll
Menekan tombol-tombol itu menempatkan Anda dalam "mode menunggu operator", di mana Vim menunggu Anda untuk memberi tahu apa yang ingin Anda operasikan ... dengan "gerakan menunggu operator".
Anda dapat menggunakan :omapatau :onoremapuntuk menentukan gerakan yang menunggu keputusan operator. Teknik yang digunakan di sini terinspirasi oleh :help omap-info:
Perhatikan bahwa saya menggunakan :onoremapkarena il, aldan i%belum ada. Jika Anda override gerakan yang ada atau teks-objek - mengatakan ip- Anda harus menggunakan pemetaan rekursif: :omap.
:help :map-operator menjelaskan metode yang sedikit lebih maju.
Lihat :help v_ountuk odalam mode visual.
o(mode pending operator) di onoremap? Apa yang dilakukan odalam mode visual? Saya akan menebak bahwa itu adalah "sisi lain", karena tampaknya melompat ke sisi lain dari pilihan ... Bagaimana saya menemukannya :h? Saya tidak dapat menemukannya dengan :h x_oatau :h o.
Saya akan menyarankan solusi tambahan, untuk menggunakan ^ alih-alih 0 (jadi baris dimulai pada awal karakter pertama:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
Dengan cara ini jika kita melakukan "perubahan sejalan" itu akan menghormati tingkat lekukan.