Bu / devamı ile silinir satırları yanmadan vim'deki yanmış metni nasıl değiştiririm?
Özetle, vnoremap p "_dP
görsel olarak seçilen metnin üzerine "*
, değiştirilen metinle birlikte kayıt defterine yazmadan yapıştırmak için kullanılır . Bu şekilde, sonraki görsel olarak seçilen macunlar aynı tutulur.
Bu remap , karakteristik olarak görsel bir seçimin satır sonuna kadar gitmesi dışında beklendiği gibi çalışır . Bunu koşullu olarak ele almanın bir yolunu bulmaya çalışıyorum, böylece:
- bu özel durumda, yapmak
"_dp
- aksi takdirde, yap
"_dP
vnoremap p
Bu özel durumu kontrol eden bir vimscript işlevini düşünüyorum , yani "görsel seçim karakteristikse ve imleç satırın sonundaysa" ve buna göre çalıştır.
meta - vimscript cevap ise, belki de StackOverflow'a göndermeliyim?
Güncelleme
Şununla çalışır:
vnoremap <expr> p (getregtype() ==# 'v' && col(".") == col("$") - 1 ? '"_dp' : '"_dP')
col("'>"
kullanıyorum birine önceki görsel seçimi kullanarak tutar şu anda vecol('$')
döndürüyor 'son sütun + 1'.