Geçerli satır için bir metin nesnesi var mı?


Yanıtlar:


13

İşte kaba "satır" metin nesneleri:

xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>

Ve kaba bir "tampon" metin nesnesi:

xnoremap i% GoggV
onoremap i% :normal vi%<CR>

---DÜZENLE---

: Bir "operatör" tek başına hiçbir şey yapmaz bir komuttur d, yvb

Bu tuşlara basmak sizi "operatörün beklemede olduğu mod" a koyar; burada Vim, üzerinde "operatörün beklemede olduğu bir hareketle" ne işlemesini istediğinizi söylemenizi bekler.

Operatör bekleyen özel hareketleri tanımlamak için :omapveya :onoremaptuşlarını kullanabilirsiniz. Burada kullanılan teknikten ilham alınmıştır :help omap-info:

  1. istediğiniz alanı kapsayan bir görsel mod eşlemesi tanımlarsanız,
  2. bu eşlemeyi operatör bekleyen bir eşlemede kullanırsınız.

Not kullandığım olduğunu :onoremapçünkü il, alve i%zaten yoktur. Varolan hareketi veya metin nesnesi geçersiz kılma durumunda - ki ip- Bir özyinelemeli eşleme kullanmalıdır: :omap.

:help :map-operator biraz daha gelişmiş bir yöntemi açıklar.

Bkz :help v_oiçin ogörsel modunda.


Güzel. Birkaç parçasını açıklar mısın? Nedir oonoremap içinde (operatör bekleyen modu)? oGörsel modda ne yapar ? Bunun "diğer taraf" olduğunu tahmin ediyorum, çünkü bir seçimin diğer tarafına atlıyor gibi görünüyor ... Nasıl bulabilirim :h? :h x_oVeya ile bulamıyorum :h o.
lindhe

Açıklama eklendi.
romainl

1

0 yerine ^ kullanmak için ek bir çözüm öneririm (böylece satır ilk karakterin başında başlar:

xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>

Bu şekilde "satırda değişiklik" yaparsak girinti seviyesine saygı gösterecektir.


Ayrıca vim master kana tarafından bu işlevselliği sağlayan bir eklenti var: github.com/kana/vim-textobj-line/blob/master/doc/…
Blasco
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.