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 :omap
atau :onoremap
untuk menentukan gerakan yang menunggu keputusan operator. Teknik yang digunakan di sini terinspirasi oleh :help omap-info
:
Perhatikan bahwa saya menggunakan :onoremap
karena il
, al
dan 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_o
untuk o
dalam mode visual.
o
(mode pending operator) di onoremap? Apa yang dilakukan o
dalam 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_o
atau :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.