Apakah ada objek teks untuk baris saat ini?


Jawaban:


13

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:

  1. Anda menentukan pemetaan mode visual yang mencakup area yang diinginkan,
  2. Anda menggunakan pemetaan itu dalam pemetaan operator-tertunda.

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.


Keren. Maukah Anda menjelaskan sedikit tentang itu? Apa itu 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.
lindhe

Penjelasan ditambahkan.
romainl

1

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.


Ada juga sebuah plugin yang menyediakan fungsionalitas ini oleh vim master kana: github.com/kana/vim-textobj-line/blob/master/doc/…
Blasco
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.